[root@localhost ~]# ps -Af | grep cron
root 2278 1 0 21:18 ? 00:00:00 crond
root 3305 3240 0 22:44 pts/0 00:00:00 grep cron
[root@localhost ~]# /var/spool/cron/root ← ユーザー毎にcrontabの設定をする。
書式
<分> <時> <日> <月> <曜日> <コマンド>
<分> 0~59までの整数
<時> 0~23までの整数
<日> 1~31までの整数
<月> 1~12までの整数
<曜日> 0~7までの整数 (0,7 : 日曜~6:土曜日)
<コマンド> 実行するコマンド,シェルスクリプトなど。
(日次例)
23時45分に毎日実行
45 23 * * * /home/admin/filechk.sh
(週次例)
月曜日の9時と12時に実行 (複数の値を指定しているので,”,”で9時と12時を区切っています。
0 9,12 * * 1 /home/admin/filechk.sh
(2時間毎)
2時間毎にジョブを実行 (2分,2時間などと設定する場合は,”*/2″のように設定します。
0 */2 * * * /home/admin/filechk.sh
システム用のcrontabファイル(/etc/crontab)もあります。このファイルでは実行ユーザー名の指定をします。
/etc/cron.deny /etc/crontab
/etc/cron.d:
/etc/cron.daily:
/etc/cron.hourly:
/etc/cron.monthly:
/etc/cron.weekly:
※システムダウン中に実行されるべきジョブがシステム復旧後に自動的に実行されるようにするには,
anacronを利用します。
[root@localhost ~]# cat /etc/anacrontab
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
1 65 cron.daily run-parts /etc/cron.daily
7 70 cron.weekly run-parts /etc/cron.weekly
30 75 cron.monthly run-parts /etc/cron.monthly
[root@localhost ~]#
おまけ:
ジョブを一回実行する場合は,ATコマンドを利用します。
対話モード
[root@localhost ~]# at 23:40
at> /sbin/shutdown -h now
at> <EOT> ←Ctrl+Dで終了
job 1 at 2007-11-25 23:40
[root@localhost ~]# at -l
1 2007-11-25 23:40 a root
[root@localhost ~]#
『結果 ↓ 無事に実行されました。』
[root@localhost ~]# date
2007年 11月 25日 日曜日 23:40:00 JST
[root@localhost ~]#
Broadcast message from root (Sun Nov 25 23:40:00 2007):
The system is going down for system halt NOW!
非対話モード
[root@localhost ~]# at -f /home/admin/at.sh 23:30
job 2 at 2007-11-25 23:30
[root@localhost ~]# at -l
1 2007-11-25 23:40 a root
2 2007-11-25 23:30 a root
[root@localhost ~]#
真夜中:midnight 今日:today 明日:tomorrow 2日後:now + 2days 2週間後の10時PM: 22:00 + 2weeks
※ at -dコマンドで実行中のジョブを削除出来ます。
※ atqコマンド, atrmコマンド
cronやatのアクセス制御
/etc/cron.allow ← 登録されたユーザーのみCronを利用出来る。
/etc/cron.deny ← cron.allowが無ければ,cron.denyに記述されていない全てのユーザーが利用出来る。
※どちらのファイルも無ければ,全てのユーザーがcronを利用出来る。
/etc/at.allow
/etc/at.deny
※どちらのファイルも無ければ,rootだけがatを利用出来る。