文章目录
1、logrotate 原理
logrotate也就是日志滚动,服务器日志文件大小增长较快,不断消耗磁盘空间就会触发告警,需要人为定期按照各种维度去手动清理日志就显得十分棘手。为了节省空间和方便整理,可以将日志文件按时间或大小分成多份,删除时间久远的日志文件,这就是通常说的日志滚动。
logrotate 是一个 linux 系统日志的管理工具。可以对单个日志文件或者某个目录下的文件按时间、大小进行切割、压缩操作;指定日志保存数量;还可以在切割之后运行自定义命令。
logrotate 是基于 crontab 运行的,所以这个时间点是由 crontab 控制的,具体可以查询 crontab 的配置文件 或者 。 系统会按照计划的频率运行 logrotate,通常是每天。在大多数的 Linux 发行版本上,计划每天运行的脚本位于 。
2、logrotate 默认配置
默认配置文件
/etc/logrotate.conf
默认配置目录,此目录下是系统软件的一些日志滚动配置
/etc/logrotate.d/*.conf
logrotate.conf 通过 include 指令,引入 logrotate.d 目录下的自定义的配置文件
可执行文件
/usr/sbin/logrotate
3、logrotate 参数
4、示例
4.1、创建配置目录
mkdir /home/logrotate
mkdir /home/logrotate/logrotate.d
cd /home/logrotate
4.2、logrotate.conf 配置
创建logrotate.conf文件
vim logrotate.conf
logrotate.conf内容
include /home/logrotate/logrotate.d
4.3、日志分割配置
需要分割日志的服务,把分割日志的配置文件放在一下下目录
cd /home/logrotate/logrotate.d
nginx
dateext
dateformat -%Y-%m-%d
/home/nginx/logs/monitor/*/*.log {
daily
missingok
rotate 7
compress
nodelaycompress
notifempty
olddir /home/nginx/logs/backup
copytruncate
extension.log
sharedscripts
}
4.4、定时启动
添加定时任务
crontab -e
定时命令,每天0:01执行日志分割
01 0 * * * logrotate -f /home/logrotate/logrotate.conf
重启定时服务
systemctl restart crond.service