日志文件总管logrotate
简介
logrotate是个十分有用的工具,它可以自动对日志进行截断、轮循、压缩以及删除旧的日志文件。配置完后,logrotate的运作完全自动化,不必进行任何人为干预。 配置文件通常在/etc/logrotate.conf中,独立配置通常在/etc/logrotate.d/下。
配置
/var/log/mysql.log /var/log/mysql/*log {
daily
rotate 7
missingok
create 640 mysql adm
compress
sharedscripts
postrotate
test -x /usr/bin/mysqladmin || exit 0
MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
if [ -z "`$MYADMIN ping 2>/dev/null`" ]; then
if killall -q -s0 -umysql mysqld; then
exit 1
fi
else
$MYADMIN flush-logs
fi
endscript
}
手动运行
logroute -f /et/logrotate.conf
定时任务
logrotate需要的cron任务应该在安装时就自动创建了:/etc/cron.daily/logrotate
root@iZ2ze8wsk0m120dsi7m0juZ:/# cat /etc/cron.daily/logrotate
#!/bin/sh
# Clean non existent log file entries from status file
cd /var/lib/logrotate
test -e status || touch status
head -1 status > status.clean
sed 's/"//g' status | while read logfile date
do
[ -e "$logfile" ] && echo "\"$logfile\" $date"
done >> status.clean
mv status.clean status
test -x /usr/sbin/logrotate || exit 0
/usr/sbin/logrotate /etc/logrotate.conf
logrotate自身日志在/var/lib/logrotate/status
root@iZ2ze8wsk0m120dsi7m0juZ:/# cat /var/lib/logrotate/status
logrotate state -- version 2
"/var/log/messages" 2018-3-14-6:0:0
"/var/log/user.log" 2018-3-14-6:0:0
"/var/log/apt/history.log" 2018-3-1-6:25:1
"/var/log/nginx/error.log" 2018-3-10-6:25:2
"/var/log/alternatives.log" 2018-3-1-6:25:1
"/var/log/debug" 2018-3-14-6:0:0
"/var/log/php7.0-fpm.log" 2018-3-14-6:0:0
"/var/log/wtmp" 2018-3-1-6:25:1
"/var/log/apache2/other_vhosts_access.log" 2017-5-17-6:0:0
"/var/log/ufw.log" 2018-3-14-6:0:0
"/var/log/mysql/slow.log" 2018-3-14-6:25:1
"/var/log/syslog" 2018-3-14-6:25:1
"/var/log/mail.log" 2018-3-11-6:25:1
"/var/log/php7.1-fpm.log" 2018-3-14-6:0:0
"/var/log/apt/term.log" 2018-3-1-6:25:1
"/var/log/unattended-upgrades/unattended-upgrades.log" 2018-3-1-6:25:1
"/var/log/mysql/error.log" 2018-3-14-6:25:1
"/var/log/mongodb/mongodb.log" 2018-3-11-6:25:1
"/var/log/kern.log" 2018-3-4-6:25:1
"/var/log/apache2/error.log" 2017-6-20-6:25:1
"/var/log/php7.2-fpm.log" 2018-3-11-6:25:1
"/var/log/mail.info" 2018-3-14-6:0:0
"/var/log/lpr.log" 2018-3-14-6:0:0
"/var/log/mysql.log" 2018-3-14-6:0:0
"/var/log/php5.6-fpm.log" 2018-3-14-6:0:0
"/var/log/nginx/access.log" 2018-3-10-6:25:2
"/var/log/daemon.log" 2018-3-14-6:0:0
"/var/log/mail.warn" 2018-3-14-6:0:0
"/var/log/fail2ban.log" 2018-3-11-6:25:1
"/var/log/btmp" 2018-3-1-6:25:1
"/var/log/apache2/access.log" 2017-6-20-6:25:1
"/var/log/mail.err" 2018-3-14-6:0:0
"/var/log/cron.log" 2018-3-14-6:0:0
"/var/log/dpkg.log" 2018-3-1-6:25:1
"/var/log/auth.log" 2018-3-11-6:25:1
"/var/log/unattended-upgrades/unattended-upgrades-shutdown.log" 2017-12-25-6:0:0
"/var/log/unattended-upgrades/unattended-upgrades-dpkg.log" 2018-3-1-6:25:1
"/var/log/ppp-connect-errors" 2018-3-14-6:0:0
"/var/log/tomcat8/catalina.out" 2018-3-11-6:25:1