決められた時刻にコマンドを定期的に実行させるプロセス。
/var/spool/cron/crontabs/(ユーザ名) に設定内容が保存される。(AIXの場合)
設定確認 crontab -l (ユーザ名)
設定変更 crontab -e (ユーザ名)
※ユーザ名を省略するとコマンド実行しているユーザが対象になる
crontab -eを実行するとviエディタが開かれる。保存して終了するとcron設定が即時反映される。viで直接ファイルを編集すると即時反映されず、cronデーモンの再起動かcrontabの実行が必要。
【書式】
分 時 日 月 曜日 コマンド
分 | 0〜59 |
時 | 0〜23 |
日 | 1〜31 |
月 | 1〜12 |
曜日 | 0〜7(0と7は両方とも日曜日) |
【値の指定の仕方いろいろ】
リスト 0,15,30,45
範囲 1-5
ミックス 1,3,7-9
間隔値 0-59/5( /の後ろで指定した値の間隔で処理を実行)
cronの設定例
0 0 * * * /infra/bin/logbkup.ksh > /dev/null 2>&1
※注意点
cronは/etc/profileを読まない。それによる不都合がある場合は、crontabに以下のように1行でprofileを読み込ませれば良い。
0 0 * * * . /etc/profile ; /infra/bin/logbkup.ksh
【rootユーザのデフォルトのcrontab】
#0 3 * * * /usr/sbin/skulker
→/tmpから古くなったファイルを定期的に削除してくれるやつ。
デフォルトでコメントアウトされており、そのままでよさそう。
#45 2 * * 0 /usr/lib/spell/compress
→spellコマンドのログを回すらしい。
デフォルトでコメントアウトされており、そのままでよさそう。
#45 23 * * * ulimit 5000; /usr/lib/smdemon.clean > /dev/null
→sendmailコマンドのキューをクリアする。
/var/spool/mqueue/logファイルがメンテされる。いらなそう。
0 11 * * * /usr/bin/errclear -d S,O 30
0 12 * * * /usr/bin/errclear -d H 90
→errptの30日or90日以上前のSoftエラー、Otherエラー、Hardエラーを消す。
errlogはerrdemonでメンテナンスされているのでコメントアウトで良いと思う。
※ちなみにunknownのエラーはずっと残るらしい
0 15 * * * /usr/bin/ras/dumpcheck > /dev/null 2>&1
→システムダンプが容量的にダンプデバイスとコピーディレクトリーに書けるかを確認する。容量が足りない場合はエラーがログに記録される。これもあったほうがよい気がする。
【cronのログ】
・/etc/cronlog.conf構成ファイルの設定を読み取ってログを記録する。
・構成ファイルに設定の記載がなければ、デフォルトは/var/adm/cron/log
※ちなみにcronのログに終了の時刻は記録されない。あくまで成功・失敗のステータスのみ(終了の時刻をログにはく方法はあるっぽい)