-ログローテーションツール。ほとんどのディストリビューションで標準採用されている。yumなどのパッケージでインストールした場合は/etc/logrotate.d/パッケージ名でファイルができているはずである。

#contents

*設定 [#w253d566]

**パラメータの意味 [#p87397f9]

|daily|日次ローテーション。他にもweeklyやmonthlyなどがある|
|rotate 2|二世代残す|
|missingok|ファイルが無くてもエラーとしない|
|copytruncate|元のファイルコピーした後サイズを0にして出力する。このオプションは付けておいた方が良い|
|compress|圧縮してローテーションする|
|delaycompress|古い世代は圧縮してローテーションする|

**実際の設定例 [#k7a81f14]

/etc/logrotate.d/にファイルを作成

Apahce2の場合はkill -HUPだとうまくいかないので下記のようにして再起動はなしでローテーションした。

 /usr/local/apache2/logs/*log {
 rotate 50
 daily
 missingok
 notifempty
 olddir past
 copytruncate
 compress
 }

-ワイルドカードは使わずに、複数ファイルを指定したければ、以下のようにする。

 /var/log/tomcat/catalina.out
 /var/log/tomcat/gc.log
 {
        daily
        rotate 2
        missingok
        copytruncate
        compress
        delaycompress
 }

-Tomcat8(手動インストール)の場合

 /var/log/tomcat/catalina.out
 {
        daily
        rotate 2
        missingok
        copytruncate
        compress
        delaycompress
        postrotate
            /sbin/service tomcat reload > /dev/null 2>/dev/null || true
        endscript
 }

しかし再起動かからず、失敗。。。何がおかしいのか?

*設定の確認と実行 [#vaaf3569]

-確認
 logrotate -d /etc/logrotate.d/apache2
-実行
 logrotate -f /etc/logrotate.d/apache2

*logrotateとrotatelog [#fd040668]

似ているが、rotatelogはApacheに付属するプログラム。パイプで渡してあげると日付付のファイル名にしてくれる。

*logrotateの実行結果 /var/lib/logrotate.status [#q17ba278]

いつローテーションされたかの結果ファイル。


#counter

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS