Kozupon.com    
 
 Cronでスケジューリング(Solaris編)


定期的に決まったコマンドを実行する、あるいはシェルを実行したい場合に、Cronを使って行う。ここでは、そのCronを使ったスケジューリング設定について説明する(Solarisの場合)。

1.crontabコマンドによる設定
2./var/spool/cron/crontabs/rootに直接書き込む設定


1.crontabコマンドによる設定

 通常、cronはSolarisをインストールするとデフォルトでインストールされる必要不可欠な機能である。実行モジュールは、/usr/sbin/cronである。
cronのコンフィグレーションは、crontabコマンドを使って行う。
現在のcronの設定がどのようになっているかを表示するには、

# crontab -l

00 5 * * * /usr/sbin/ntpdate -b 133.100.11.8 > /dev/null

10 3 * * 0,4 /etc/cron.d/logchecker
10 3 * * 0 /usr/lib/newsyslog
15 3 * * 0 /usr/lib/fs/nfs/nfsfind
1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1
30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean

このように表示される。この設定を編集する場合は、

# crontab -e

で設定内容が表示されて、デフォルトではviモードで編集が出来る。

分  時 日 月 曜日 ユーザ         実行コマンド
00  5  *   *   *   root      /usr/sbin/ntpdate -b 133.100.11.8 > /dev/null

分  : 01〜59
時  : 1〜24
日  : 1〜31
曜日 : 0(日曜)〜6(土曜)

この場合は、毎日AM 5時00分に/usr/sbin/ntpdate -b 133.100.11.8 > /dev/nullコマンドを実行するようになっている。
ちなみに、このコマンドは時計あわせである。

例えば、絶対時間ではなく、単に10分おきにコマンドを実行したい場合は

*/10 *  *  *  *    /usr/sbin/ntpdate -b 133.100.11.8 > /dev/null

これがだめな場合は、

0,10,20,30,40,50 * * * * /usr/sbin/ntpdate -b 133.100.11.8 > /dev/null

このように書く。


2./var/spool/cron/crontabs/rootに直接書き込む設定

もう一つの、方法は直接/var/spool/cron/crontabs/rootファイルに書き込む方法がある。ここでは、その方法を説明する。cronは、実行時に/var/spool/cron/crontabs/rootに書かれた内容を参照して実行する。したがって、スケジューリングしたいコマンド等を/var/spool/cron/crontabs/rootに直接記述すれば、本来の目的を果たすことが出来る。crontab -lはこのファイルを表示し、crontab -eはこのファイルを編集していることになる。
したがって、このファイルを直接偏しても良い。小生は、直接/var/spool/cron/crontabs/rootファイルを編集している。
編集し終えたら、以下を実行!

# killall -HUP cron もしくは、

# /etc/init.d/cron stop

# /etc/init.d/cron start

一端、cronをストップしてスタートさせる。
尚、cronの実行ログは、/var/cron/logである。ちゃんと実行されているかは、このログで観察しよう。

以上


 
 
 



Copyright 2005 Kozupon.com.