一、文档介绍
本文档描述 Linux 操作系统下几种常见日志切割场景的操作情况。
二、名词解释
logrotate 是一个 Linux 日志管理工具,用于自动分割、删除日志等功能,节省磁盘空间,避免磁盘空间过载问题。它基于 CRON 运行。
三、部署
Linux 操作系统默认自带 logrotate,若命令不存在,通过以下命令安装:
yum install logrotate -y
配置文件:
/etc/logrotate.conf/etc/logrotate.d/
默认情况下,logrotate 会使用 CRON 作为定时任务调度器进行日志轮转。可以编辑 /etc/cron.daily/logrotate 文件,修改定时任务的执行时间和其他设置。
四、常用命令
# 检查指定的日志轮转配置文件
logrotate -d /etc/logrotate.d/LogExample
# 手动执行指定的日志轮转
logrotate -f /etc/logrotate.d/LogExample
五、参数说明
六、示例
(一) tomcat
配置文件:/etc/logrotate.d/tomcat
/path/to/tomcat/logs/catalina.out {
daily
create 600 myuser myuser
rotate 30
missingok
notifempty
compress
copytruncate
dateext
}
(二) mysql
配置文件:/etc/logrotate.d/mysql
/path/to/mysql/logs/*.log {
daily
rotate 180
missingok
create 777 mysql mysql
notifempty
compress
dateext
postrotate
# just if mysqld is really running
if test -x /mysql/bin/mysqladmin && \
/mysql/bin/mysqladmin -uroot -p密码 ping &>/dev/null
then
/mysql/bin/mysqladmin -uroot -p密码 flush-logs
fi
endscript
}
(三) nginx
配置文件:/etc/logrotate.d/nginx
/path/to/nginx/logs/*.log {
daily
missingok
rotate 90
compress
delaycompress
notifempty
create 640 nginx nginx
sharedscripts
postrotate
if [ -f /path/to/nginx/logs/nginx.pid ]; then
kill -USR1 `cat /path/to/nginx/logsnginx.pid`
fi
endscript
}
