MacOSX(Tiger)でapacheのログをlogrotateする

MacOSX(Tiger)でapacheのログをlogrotateする を参考にしつつ、以下の点を変更

  • bzip2 圧縮
  • 1年たったら削除

/opt/local/etc/logrotate.d/apache.conf :

/opt/local/apache2/logs/*_log {
daily
rotate 4
size 0
create
noolddir
ifempty
missingok
sharedscripts
postrotate
/bin/kill -HUP `cat /opt/local/apache2/logs/httpd.pid 2>/dev/null` 2> /dev/null || true
find /opt/local/apache2/logs -mtime +366 -type f -name '*log.*.bz2' 
# EXT=`date +%Y%m%d`
EXT=`/opt/local/etc/logrotate.d/yesterday`
for f in $1;
do
  mv $f.1 $f.$EXT
  nice bzip2 $f.$EXT &
done
endscript
}

/opt/local/etc/logrotate.d/yesterday : (元記事では <?PHP の行が消えている)

#!/opt/local/bin/php
<?PHP
$d = date("Ymd",time()-24*3600);
print $d;
?>

crontab root コマンドでつっこんだもの。status ファイルの置き場所を設定しないと動かなかった。(/etc/crontab ファイルには launchd に移動した、と書いてあるので利用するのは避けた)

0 5 * * * /opt/local/sbin/logrotate -s /var/run/logrotate.status /opt/local/etc/logrotate.d/apache.conf >/dev/null 2>/dev/null
広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。