logrotate
主な記述例†
主なコマンド†
コマンド | 内容 |
compress | ローテーションしたログをgzipで圧縮 |
copytruncate | ログファイルをコピーし、内容を削除 |
create パーミッション ユーザー名 グループ名 | ローテーション後に空のログファイルを新規作成。ファイルのパーミッション、ユーザー名、グループ名を指定可能 |
daily | ログを毎日ローテーションする |
delaycompress | ログの圧縮作業を次回のローテーション時まで遅らせる。compressと共に指定 |
ifempty | ログファイルが空でもローテーションする |
missingok | ログファイルが存在しなくてもエラーを出さずに処理を続行 |
monthly | ログを毎月ローテーションする |
nocompress | ローテーションしたログを圧縮しない |
nocreate | 新たな空のログファイルを作成しない |
nomissingok | ログファイルが存在しない場合にエラーを出す |
noolddir | ローテーション対象のログと同じディレクトリにローテーションしたログを格納 |
notifempty | ログファイルが空ならローテーションしない |
olddir ディレクトリ名 | 指定したディレクトリ内にローテーションしたログを格納 |
postrotate~endscript | postrotateとendscriptの間に記述されたコマンドをログローテーション後に実行 |
prerotate~endscript | postrotateとendscriptの間に記述されたコマンドをログローテーション前に実行 |
rotate 回数 | ローテーションする回数を指定 |
size ファイルサイズ | ログファイルが指定したファイルサイズ以上になったらローテーションする |
sharedscripts | 複数指定したログファイルに対し、postrotateまたはprerotateで記述したコマンドを実行 |
weekly | ログを毎週ローテーションする |
設定例†
/var/log/httpd/*_log {
daily
rotate 90
compress
delaycompress
missingok
notifempty
sharedscripts
postrotate
/sbin/service httpd reload > /dev/null 2>/dev/null || true
endscript
}