特定の時間にスクリプトを実行したい~cronの設定~

タイトルの通り。なんか意外と難しくてハマったのでメモ。

環境はUbuntuです。AWSの22.04のやつ。

結論をまとめると、やり方はこんな感じ。

# cronインストール
apt install cron

#cronの設定ファイルを開く
vi /etc/crontab

と、↓のようなファイルが開かれるので、設定を追記するだけ。

# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
# You can also override PATH, but by default, newer versions inherit it from the environment
#PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed
# 17 *   * * *   root    cd / && run-parts --report /etc/cron.hourly
# 25 6   * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
# 47 6   * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
# 52 6   1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
# ↑ここまでは初期設定として入ってるやつ。日次実行とか週次実行のスクリプトが用意されてるっぽいけど、今回はやりたいことが決まってるのでコメントアウトして無視した。
30 8    * * *   root    cd /home/ubuntu/Minecraft/script && ./restart.sh
#

わかればあっさり。これで毎日8時30分にrestart.shを実行してくれるようになった。