使用logrotate来管理日志

2019-12-05  本文已影响0人  愤愤的有痣青年

logrotate是一款可以对日志进行定时分割压缩处理的工具,感觉非常实用.linux系统一般都默认有安装,其可以运行logrotate --version命令看看本机是否有安装,若有安装则可以直接修改配置文件使用.

# /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

上一篇下一篇

猜你喜欢

热点阅读