Linuxコマンド逆引き大全
コマンド集(機能別) | コマンド集(アルファベット順) | コマンド逆引き大全 | シェル・スクリプト・リファンレス

 定期的にプログラムを動かす
# 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