定期的にプログラムを動かす |
# crontab -e 00 01 * * * /usr/local/sbin/logrotate
|
ログ・ファイルの切り替えなど,プログラムを定期的に繰り返し実行したい場合は「crontab」コマンドを用いる。
$ crontab -e
|
このように入力すると,設定ファイルであるcrontabの編集に移る。編集には通常viが使われる。crontabの書式は
min hour day month week command
|
である。それぞれの意味は以下の表の通り。
書式 |
意味 |
min |
分を指定する。ワイルド・カード(*)を使用できる |
hour |
時を指定する。ワイルド・カード(*)を使用できる |
day |
日を指定する。ワイルド・カード(*)を使用できる |
month |
月を指定する。ワイルド・カード(*)を使用できる |
week |
曜日を指定する。0を日曜日とし,各曜日に順に数字を当てはめていく。またワイルド・カード(*)も使用できる |
command |
実行するコマンドまたはスクリプトを指定する |
例えは,「/var/message」ログを日付別に分けたい場合は,次のようにする。まず,テキスト・エディタで以下のようなファイルを作成する(ファイル名は/usr/local/sbin/logrotateとした)。これらの作業はルート権限で行う。
#!/bin/sh
cd /var/log/
R=$(date +%Y%m%d)
mv messages messages.$R
|
次に,このプログラムに実行権限を与える。
# chmod 700 /usr/local/sbin/logrotate
|
crontabを編集する。例えば,毎日23時59分に実行するようにする。
# crontab -e
59 23 * * * /usr/local/sbin/logrotate
|