mysql:slowlog_rotate
スローログの自動ローテート
アカウント情報の設定フィルを作成
# vi /root/.my.cnf
[client] user = root password = rootpassword
rootしかアクセスできないように権限設定
# chown root:root /root/.my.cnf # chmod 600 /root/.my.cnf
実行テスト
# mysql --defaults-extra-file=.my.cnf -e "show databases;" +--------------------+ | Database | +--------------------+ | information_schema | | ibdata | | mysql | | nagios | | performance_schema | +--------------------+
ローテートの設定ファイル作成
# vi /etc/logrotate.d/mysql-slow-rotate
/var/log/mysql/mysql-slow.log { create 644 mysql mysql notifempty daily rotate 14 missingok nocompress dateext prerotate /usr/bin/mysqldumpslow -s t /var/log/mysql/mysql-slow.log 2>/dev/null | \ mail -s "slowlog" clown@example.com endscript postrotate /usr/bin/mysql --defaults-extra-file=/root/.my.cnf -e "flush slow logs" endscript }
Command
# logrotate --help 使い方: logrotate [OPTION...] <configfile> -d, --debug Don't do anything, just test (implies -v) -f, --force Force file rotation -m, --mail=command Command to send mail (instead of `/bin/mail') -s, --state=statefile Path of state file -v, --verbose Display messages during rotation Help options: -?, --help Show this help message --usage Display brief usage message
ローテートのテスト
# logrotate -dv /etc/logrotate.d/mysql-slow-rotate reading config file /etc/logrotate.d/mysql-slow-rotate reading config info for /var/log/mysql/mysql-slow.log Handling 1 logs rotating pattern: /var/log/mysql/mysql-slow.log after 1 days (14 rotations) empty log files are not rotated, old logs are removed considering log /var/log/mysql/mysql-slow.log log does not need rotating not running postrotate script, since no logs were rotated
# logrotate -df /etc/logrotate.d/mysql-slow-rotate reading config file /etc/logrotate.d/mysql-slow-rotate reading config info for /var/log/mysql/mysql-slow.log Handling 1 logs rotating pattern: /var/log/mysql/mysql-slow.log forced from command line (14 rotations) empty log files are not rotated, old logs are removed considering log /var/log/mysql/mysql-slow.log log needs rotating rotating log /var/log/mysql/mysql-slow.log, log->rotateCount is 14 glob finding old rotated logs failed running prerotate script running script with arg /var/log/mysql/mysql-slow.log: " /usr/bin/mysqldumpslow -s t /var/log/mysql/mysql-slow.log 2>/dev/null | \ mail -s "slowlog" clown@example.com " renaming /var/log/mysql/mysql-slow.log to /var/log/mysql/mysql-slow.log-20131211 creating new log mode = 0644 uid = 27 gid = 27 running postrotate script running script with arg /var/log/mysql/mysql-slow.log: " /usr/bin/mysql --defaults-extra-file=.my.cnf -e "flush slow logs" "
mysql/slowlog_rotate.txt · 最終更新: 2015/11/24 07:42 by clownclown