Linuxで、決まった時間に処理を動かすことができる「crontab」。
使い方を知ってると、とても便利なので解説しますね。
crontabとは
crntabは、Linuxでタイムスケジューラが設定できる機能です。
例えば、8:00になったら、~~という処理を流すとか、10分おきに、なにかのプログラムを実行する、とかです。
crontab設定方法とデモ
それでは早速設定デモです。
今回は、単純に現在の時間をファイルに記入してくれる「time.sh」を、1分おきに実行したいと思います。
まずは、crontabを開きます。
crontab -e
何も書いていない場合も多いですが、心配なく。 ここに追記します。
*/1 * * * * ~/time.sh
これで、viと同じく「:wq」で保存できれば大丈夫です。 記法が間違っているとエラーが出て保存できません。
数分待って、ファイルを見てみると、
1分おきに、時間が追記されていることが分かります。
contab設定の意味 「* * * * * 」は、左から、「分」「時」「日」「月」「曜日」を表しています。
例えば、10 0 * * * a.sh であれば、毎日0:10に「a.sh」を実行する、という意味になります。
項目設定できる値
分 | 0-59 |
時 | 0-23 |
日 | 1-31 |
月 | 1-12 |
曜日 | 0-7、0=日、1=月、2=火、3=水、4=木、5=金、6=土、7=日 |
他の便利な設定例(分フィールドで実施した場合)
0,10,20,30 | 0,10,20,30分に実行 |
*/10 | 10分おきに実行 |
実行ユーザー
crontab -eの設定をしたユーザーが、実行ユーザーになります。
centosユーザーで「crontab -e」の設定をすれば、実行ユーザーは「centos」になります。
rootユーザーで「crontab -e」の設定をすれば、実行ユーザーは「root」になります。
権限設定ミス(実行権限なし)などで、エラーにならないように注意しましょう。