logrotateで任意のログをローテートする

任意のログをローテートしたい場合は、/etc/logrotate.d/ に設定ファイルを追加すればよい。
既存の設定をコピーして編集すると楽。

[dacelo@space]$ cat /etc/logrotate.d/hogehoge
/var/log/hogehoge/hogehoge.log {
        weekly
        rotate 12
        compress
        delaycompress
        missingok
        notifempty
        create 0664 root gp_admins
}

各種コマンド一覧

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

参照:@IT

詳細はlogrotateコマンドのmanページを確認されたし。

結果シミュレーション

下記コマンドで、DryRunが実行できるので、夜を迎える前に試しておこう。

[dacelo@space ~]$ sudo logrotate -dv /etc/logrotate.conf

広告

About: dacelo


Leave a Reply

Your email address will not be published. Required fields are marked *