Cronで任意の日時にプログラムを自動実行する
Cronとは
Cronとは、指定したプログラムを自動実行してくれる仕組みです。
UNIX系OSには標準で組み込まれており、自作のスクリプトを指定した時間に実行したり、一定間隔で実行することができます。
Usage
Cronを利用するためには、crontab
コマンドを利用します。
# Cronエディタを開く crontab -e
crontab -e
でスケジュール編集画面を開き、実行したいプログラムを指定します。
スケジュールを記述するためのフォーマット(一行分)は以下のようになります。
[分] [時] [日] [月] [曜日] [実行したいコマンド、オプション、引数]
[分] [時] [日] [月] [曜日] には実行する時刻を指定します。
例えば5月10日19時14分に命令を実行したい場合
# 5月10日19時14分にhoge.txtがホームに生成される 14 19 10 5 * echo "hoge" > ~/hoge.txt
となります。
*
は未指定を表します。また上記の例のとおり、 [実行したいコマンド、オプション、引数]にはシェル上でワンライナーで実行するときと同様に命令を記述します。
Ex.
# 毎時10分にhoge.txtがホームに生成される 10 * * * * echo "hoge" > ~/hoge.txt # 毎日12時10分にhoge.txtがホームに生成される 10 12 * * * echo "hoge" > ~/hoge.txt # 毎月1日12時10分にhoge.txtがホームに生成される 10 12 1 * * echo "hoge" > ~/hoge.txt # 5月1日12時10分にhoge.txtがホームに生成される 10 12 1 5 * echo "hoge" > ~/hoge.txt # 火曜日の5月1日12時10分にhoge.txtがホームに生成される # 曜日は0=日、1=月、2=火、3=水、4=木、5=金、6=土、7=日 10 12 1 5 2 echo "hoge" > ~/hoge.txt
また各指定数の後ろに/
をつけ数値を指定すると、
指定した間隔で処理を繰り返すようになる。
# 1分おきに"hello, cron!"という文字列行がhoge.txtに追加される $ crontab -e */1 * * * * echo "hello, cron!" >> ~/hoge.txt $ cat ~/hoge.txt hello, cron! hello, cron! hello, cron! hello, cron! hello, cron! hello, cron!