使用logrotate来管理日志
2019-12-05 本文已影响0人
愤愤的有痣青年
logrotate是一款可以对日志进行定时分割压缩处理的工具,感觉非常实用.linux系统一般都默认有安装,其可以运行logrotate --version
命令看看本机是否有安装,若有安装则可以直接修改配置文件使用.
-
安装
ubuntu直接使用apt-get install logrotate
-
配置文件
logrotate工具的默认配置文件路径在/etc/logrotate.d/
目录下,只需要将需要处理的目录的配置文件加在此目录下即可.
nginx配置文件日志处理示例如下:
# /etc/logrotate.d/nginx
/mnt/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
run-parts /etc/logrotate.d/httpd-prerotate; \
fi \
endscript
postrotate
invoke-rc.d nginx rotate >/dev/null 2>&1
endscript
}
其说明如下:
命令 | 说明 |
---|---|
/mnt/log/nginx/*.log | 配置文件路径 |
daily | 日志文件将按日轮循。其它可用值为'monthly','weekly'或者'yearly'。 |
missingok | 在日志轮循期间,任何错误将被忽略,例如“文件无法找到”之类的错误。 |
rotate 14 | 一次将存储14个归档日志。对于第15个归档,时间最久的归档将被删除。 |
compress | 在轮循任务完成后,已轮循的归档将使用gzip进行压缩。 |
delaycompress | 总是与compress选项一起用,delaycompress选项指示logrotate不要将最近的归档压缩,压缩将在下一次轮循周期进行。这在你或任何软件仍然需要读取最新归档时很有用。 |
notifempty | 如果日志文件为空,轮循不会进行。 |
create 0640 www-data adm | 以指定的权限创建全新的日志文件,同时logrotate也会重命名原始日志文件。 |
sharedscripts | 共享脚本,不大明白含义.... |
postrotate/endscript | 运行时的自定义脚本,内部以postrotate/endscript开始和结尾 |
修改配置文件保存后配置即生效,此时也可以手动运行脚本
logrotate /etc/logrotate.conf