windowsでいうところのタスクにあたります。
定期的にプログラムを実行することに使用します。
編集方法
#crontab -l 登録している一覧を確認 #crontab -e 編集 #crontab -u (ユーザ名) ユーザ名で指定したユーザの設定。rootのみ操作可能。
crontableの略だと思います。
#crontab -e で編集画面を開き、viの要領でテキストエディタのように設定を編集します。
0 4 * * * /usr/bin/[プログラム] 毎朝4時に実行
分 (0-59) 指定しない場合は*
時 (0-23) 指定しない場合は*
日 (1-31) 指定しない場合は*
月 (1-12) 指定しない場合は*
曜日(0-6) 日曜が0 指定しない場合は*
の順番で起動日時を指定します。
分 (0-59) 指定しない場合は*
時 (0-23) 指定しない場合は*
日 (1-31) 指定しない場合は*
月 (1-12) 指定しない場合は*
曜日(0-6) 日曜が0 指定しない場合は*
の順番で起動日時を指定します。
秒単位の実行
例えば5秒毎にxxx.shを実行する場合は以下のようになります。
* * * * * /home/batch/bin/xxx.sh & sleep 5;/home/batch/bin/xxx.sh & sleep 5;/home/batch/bin/xxx.sh & sleep 5;/home/batch/bin/xxx.sh & sleep 5;/home/batch/bin/xxx.sh & sleep 5;/home/batch/bin/xxx.sh & sleep 5;/home/batch/bin/xxx.sh & sleep 5;/home/batch/bin/xxx.sh & sleep 5;/home/batch/bin/xxx.sh & sleep 5;/home/batch/bin/xxx.sh & sleep 5;/home/batch/bin/xxx.sh & sleep 5;/home/batch/bin/xxx.sh
cronでは1分毎が最小単位になりますので、cronだけでやろうとするとこのように複雑になってしまいます。
以下のような書き方も可能です。
* * * * * /home/batch/bin/xxx.sh * * * * * sleep 5; /home/batch/bin/xxx.sh * * * * * sleep 10; /home/batch/bin/xxx.sh … * * * * * sleep 55; /home/batch/bin/xxx.sh
どちらにせよ、設定は複雑となり見た目によくわかりません。
私はxxx.sh内部でループさせてスリープを入れる方がいいのではないかと思っています。