apacheのログのローてートについて
ログはそのままにしておくと、どんどん大きくなってしまう。
そのためログを一定期間で世代分け(ローテート)させることにします。
世代分けを行うのがlogrotate 。
定期的に logrotate を実行するために cron と組み合わせます。
logrotate の設定は /etc/logrotate.conf で行う。
example
/etc/logrotate.conf の中身は以下の感じ
# 詳しくは "man logrotate"
# グローバルな設定
# ローテートの間隔(monthly,weekly,daily)
daily
# 何世代まで保存するか
rotate 7
# エラーがあれば root 宛てにメールする
errors root
# ローテート処理後すぐに同名のログファイルを作成する
create
# ログファイルを圧縮(する:compress しない:nocompress)
#compress
# logrotateの設定ファイルの位置
include /etc/logrotate.d
# /var/log/wtmp をローテートする設定
/var/log/wtmp {
monthly
create 0664 root utmp
rotate 1
}
Apache ログの設定ファイル(/etc/logrotate.d/apache)の中身は
/var/log/httpd/axs_log {
postrotate
/bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
endscript
}
/var/log/httpd/error_log {
postrotate
/bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
endscript
}
/var/log/httpd/axs_log はローテートさせるログの場所を指します。
postrotate はローテート後にコマンドを行うということを示しており、次の行の
/bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true