使用logrotate进行日志轮替

  logrotate是一个日志文件管理工具。用来把旧文件轮转、压缩、删除,并且创建新的日志文件。我们可以根据日志文件的大小、天数等来转储,便于对日志文件管理,一般都是通过cron计划任务来完成的。

一、配置选项说明

composer(nocomposer):是否压缩转存后的就日志
create(nocreate) [mode, user, group]:是否建立新的日志文件
daily(weekly,monthly):日志的轮替周期
missingok:轮替期间,任何错误将被忽略
mail [address]:把转存的日志文件发送到指定邮箱
datetext:采用时间命名日志文件(wtmp-20160909)
size :日志文件到达指定大小时才开始轮替,忽略轮替时间
sharedscripts:后面的命令只执行一次
preroteate(postrotate):轮替前(后)执行的命令
endscript:放到pretotate(postrotate)后面

二、示例说明

logrotate –vf /etc/logrotate.conf:强制轮替日志
logrotate -df /etc/logrotate.conf:调试模式,不轮替日志

/var/log/alert.log {
        weekly
        rotate 4

        sharedscripts
        prerotate
            /usr/bin/chattr -a /var/log/alert.log
        endscript

        sharedscripts
        postrotate
            /usr/bin/chattr +a /var/log/alert.log
        endscript
}

nginx的日志轮替模板

/usr/local/nginx/log/nginx/*log {
    create 0644 nginx nginx
    monthly
    minsize 100M
    rotate 4
    missingok
    dateext
    compress

    sharedscripts
    postrotate
        /bin/kill -USR1 `cat /usr/local/nginx/log/nginx.pid 2>/dev/null` 2>/dev/null || true
    endscript
}

你可能感兴趣的:(使用logrotate进行日志轮替)