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
広告