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