====== MySQL - ログローテート ====== MySQLのログってnewsyslogなんかに記述しても上手くローテートしてくれません。\\ 新しいログファイルの使用を MySQL に強制するには、mysqladmin flush-logs を使用する必要があります。\\ Linuxのrpmなんかだと、ローテート用のプログラムが用意されてるみたいなんですが、\\ FreeBSDはそんなのないので、簡単なシェルを書いてCronで実行するような処理が必要になります。 ====== MySQLのログをローテート ====== /etc/newsyslog.confに記述。 今回は一週間分、圧縮せずにローテートするよう記述。 # vi /etc/newsyslog.conf -----------------追加-------------------- /var/log/mysql/mysql.log 660 7 * @T00 B -----------------追加-------------------- /etc/crontabにパーミッション変更とMySQLのflush-logsを実行。 # vi /etc/crontab 01 0 * * * root /usr/sbin/chown mysql /var/log/mysql/mysql.log ; /usr/local/bin /mysqladmin -u root -p[MySQLのrootパスワード] flush-logs ※root -p[MySQLのrootパスワード]の個所は-pの後にスペースは入れないようにする。 {{tag>MySql logrotate}}