===== スローログの自動ローテート ===== ===== アカウント情報の設定フィルを作成 ===== # 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...] -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" "