ฉันมีการกำหนดค่า logrotate นี้และฉันใช้งานบน Ubuntu 10.04
/var/log/mysql/mysql-slow.log {
daily
rotate 3
compress
notifempty
missingok
create 660 mysql adm
postrotate
if test -x /usr/bin/mysqladmin && \
/usr/bin/mysqladmin ping &>/dev/null
then
/usr/bin/mysqladmin flush-logs
fi
endscript
}
ฉันใส่มันลงใน /etc/logrotate.d เมื่อวานนี้และวันนี้บันทึกไม่ได้หมุน
ด้านล่างนี้คือสิ่งที่ฉันได้ทำ:
- ฉันยืนยันว่าบันทึกนั้นอยู่ใน /var/log/mysql/mysql-slow.log
- บรรทัด mysqladmin ทำงานได้ดีเมื่อทำงานในฐานะรูท
- mysql สามารถเขียนไปยัง mysql-slow.log
เมื่อฉันทำสิ่งนี้:
$ logrotate -d -f mysql-slow
reading config file mysql-slow
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 (3 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 3
dateext suffix '-20120329'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
renaming /var/log/mysql/mysql-slow.log.3.gz to /var/log/mysql/mysql-slow.log.4.gz (rotatecount 3, logstart 1, i 3),
renaming /var/log/mysql/mysql-slow.log.2.gz to /var/log/mysql/mysql-slow.log.3.gz (rotatecount 3, logstart 1, i 2),
renaming /var/log/mysql/mysql-slow.log.1.gz to /var/log/mysql/mysql-slow.log.2.gz (rotatecount 3, logstart 1, i 1),
renaming /var/log/mysql/mysql-slow.log.0.gz to /var/log/mysql/mysql-slow.log.1.gz (rotatecount 3, logstart 1, i 0),
renaming /var/log/mysql/mysql-slow.log to /var/log/mysql/mysql-slow.log.1
creating new /var/log/mysql/mysql-slow.log mode = 0660 uid = 20004 gid = 4
running postrotate script
running script (multiple) with arg /var/log/mysql/mysql-slow.log : "
if test -x /usr/bin/mysqladmin && \
/usr/bin/mysqladmin &>/dev/null
then
/usr/bin/mysqladmin flush-logs
fi
"
compressing log with: /bin/gzip
removing old log /var/log/mysql/mysql-slow.log.4.gz
- บันทึกที่แสดงว่า logrotate สำเร็จหรือไม่ ฉันต้องการดูว่ามีอะไรที่จะบอกว่ามีปัญหาหรือไม่
- ความคิดเห็นใด ๆ เกี่ยวกับสาเหตุที่ logrotate ไม่ทำงาน
mysql-server
? grep '/var/log/mysql' /etc/logrotate.d/*
วิ่ง
/etc/crontab
/etc/cron.daily )
บางทีคุณอาจสร้างการตั้งค่า logrotate หลังจากงาน cron รายวันสำหรับวันนั้นทำงานไปแล้ว?
crond
ทำงานอยู่หรือไม่