[CentOS] RTX1100 のシスログを日次ローテートする。ローテートしたファイルに日付を付けて圧縮する。

前回は /etc/rsyslog.conf を編集することで /var/log ディレクトリに RTX 1100 のログが残せるようになりました。今日はこのログファイルを日次ローテートさせる設定です。

/etc/logrotate.d ディレクトリに rtx1100 という設定ファイルを作成します。このファイルに定義を書くことでログファイルをローテートさせることができます。細かい中身は以下のように設定しました。

$ pwd
/etc/logrotate.d
$ ls -l rtx1100
-rw-r–r–. 1 root root 141 10月 6 01:14 2015 rtx1100
$ cat rtx1100
/var/log/rtx1100.log {
daily
rotate 30
compress
ifempty
dateext
create
postrotate
kill -HUP `cat /var/run/syslogd.pid`
endscript
}
$

1行目の /var/log/rtx1100.log というのは、このファイルがローテート対象であることを記述しています。

daily で毎日ローテートするように指示しています。

rotate 30 というのは 30 世代(つまり 30 日分)のログファイルを残す設定です。

compress はログファイルの圧縮を指示しています。

ifempty はログファイル( /var/log/rtx1100.log )が空であってもローテートさせる為の設定です。

dateext はローテートしたファイルの名前に日付を付加する設定です。

create はログローテート後に新たにログファイルを作成させるための設定です。

postrotate と endscript の間に、ローテーションさせた後に実行する命令を書きます。ここでシスログのプロセスに HUP シグナルを送る為の kill コマンドを書いています。これを書かないとローテートした後の /var/log/rtx1100.log ファイルにログが書き込まれないことになるので必須です。

このように設定ファイルを定義することで、/var/log ディレクトリには RTX 1100 のシスログが以下のように残されていきます。

$ ls -tlr /var/log/rtx1100*
-rw——-. 1 root root 3723 10月 4 04:35 2015 /var/log/rtx1100.log-20151004.gz
-rw——-. 1 root root 6492 10月 5 03:08 2015 /var/log/rtx1100.log-20151005.gz
-rw——-. 1 root root 951 10月 6 03:31 2015 /var/log/rtx1100.log-20151006.gz
-rw——-. 1 root root 82902 10月 6 22:44 2015 /var/log/rtx1100.log
$

いい感じです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください