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 · 最終更新: 2025/02/16 13:53 by 127.0.0.1
