はじめに
ログローテーションを設定する際のコマンドをその都度調べていたので、自分専用のメモを残しておきました。
なお、この記事はこちらをほとんど参考にしています。
書式
ローテーションする期間に関する設定
| コマンド | 内容 |
| rotate 回数 | ローテーションする回数を指定する。 |
| daily | ログを毎日ローテーションする。 |
| weekly | ログを1週間でローテーションする。 |
| month | ログを1ヶ月でローテーションする。 |
ファイル名に関する設定
| コマンド | 内容 |
| dateext | ファイル名の末尾をYYYYMMDD形式で生成する。 |
ファイルの容量に関する設定
| コマンド | 内容 |
| compress | ローテーションしたログをgzipで圧縮する。 |
| nocompress | ローテーションしたログをgzipで圧縮しない。 |
| copytruncate | ログファイルをコピーし、内容を削除する。 |
| size [ファイルサイズ] | ログファイルが指定したファイルサイズ以上になったらローテーションする。 |
ファイル生成・実行に関する設定
| コマンド | 内容 |
| create | ローテーション後に空のログファイルを作成する。 |
| nocreate | ローテーション後に空のログファイルを作成しない。 |
| ifempty | ログファイルが空でもローテーションする。 |
| notifempty | ログファイルが空ならローテーションしない |
| missingok | ログファイルが存在しなくてもエラーを出さずに処理を続行する。 |
| nomissingok | ログファイルが存在しない場合にエラーを出す。 |
| olddir [ディレクトリ名] | 指定したディレクトリ内にローテーションしたログを格納する。 |
ログローテーションの設定ファイルに関する設定
| コマンド | 内容 |
| postrotate~endscript | postrotateとendscriptの間に記述されたコマンドをログローテーション後に実行する。 |
| prerotate~endscript | postrotateとendscriptの間に記述されたコマンドをログローテーション前に実行する。 |
設定例
/var/log/logtest/rt01というログファイルをログローテーションさせる設定です。
|
1 2 3 4 5 6 7 8 9 10 11 12 |
[root@localhost ~]# cat /etc/logrotate.d/syslog /var/log/logtest/rt01 { missingok daily ifempty rotate 10 sharedscripts postrotate /usr/bin/systemctl kill -s HUP rsyslog.service >/dev/null 2>&1 || true endscript } |

