ログのローテート

MySQL

$ sudo vim /etc/logrotate.d/mysql
/var/log/mysql/*log {
	    # create 600 mysql mysql
	    notifempty
	    weekly
	    rotate
	    missingok
	    compress
	postrotate
	    # just if mysqld is really running
	    if test -x /usr/local/mysql5/bin/mysqladmin && \
		/usr/local/mysql/bin/mysqladmin ping &>/dev/null
	    then
		/usr/local/mysql/bin/mysqladmin flush-logs
	    fi
	endscript
}

Apache

$ sudo vim /etc/logrotate.d/httpd
/var/log/httpd/*log {
   notifempty
   weekly
   rotate 4
   missingok
   sharedscripts
   postrotate
       /sbin/service httpd reload > /dev/null 2>/dev/null || true
   endscript
}

PHP

試してない。

$ sudo vim /etc/logrotate.d/php
/var/log/php/php_errorlog {
   notifempty
   weekly
   rotate 4
   missingok
   postrotate
       /sbin/service httpd reload > /dev/null 2>/dev/null || true
       #/etc/init.d/apache2 reload > /dev/null 2>/dev/null || true
   endscript
}

メモ

  • notifempty・・・ログファイルが空の場合ローテーションしない
  • missingok・・・ログファイルが存在しない場合にエラーを出力しない
  • sharedscripts・・・ログファイルを複数指定した場合、それぞれ postrotate、prerotate内のコマンドを実行
  • compress・・・ローテーションしたログをgzipで圧縮


Comment



Counter: 6951, today: 1, yesterday: 1

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-09-24 (火) 14:56:15 (1399d)