トヨの技術ブログ

ITエンジニアの勉強ノート兼ブログです。

crontabでタイムスケジューラを設定しよう

Linuxで、決まった時間に処理を動かすことができる「crontab」。

使い方を知ってると、とても便利なので解説しますね。

Linuxのタイマー「crontab」
Linuxのタイマー「crontab」

crontabとは

crntabは、Linuxでタイムスケジューラが設定できる機能です。

例えば、8:00になったら、~~という処理を流すとか、10分おきに、なにかのプログラムを実行する、とかです。

crontab設定方法とデモ

それでは早速設定デモです。

今回は、単純に現在の時間をファイルに記入してくれる「time.sh」を、1分おきに実行したいと思います。

まずは、crontabを開きます。

crontab -e

何も書いていない場合も多いですが、心配なく。 ここに追記します。

*/1 * * * * ~/time.sh

これで、viと同じく「:wq」で保存できれば大丈夫です。 記法が間違っているとエラーが出て保存できません。

数分待って、ファイルを見てみると、

cron実行結果

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」になります。

権限設定ミス(実行権限なし)などで、エラーにならないように注意しましょう。