logrotate配置文件:

[root@localhost ~]<20181212 11:48:47># cat /etc/logrotate.d/httpd
/usr/local/apache/logs/access.log {
        daily
        rotate 30
        create
        missingok
        notifempty
        dateext
        sharedscripts
        postrotate
            /usr/local/apache/bin/httpd -k graceful > /dev/null 2>/dev/null || true
        endscript
}
#或者/bin/kill -SIGUSR1 `cat /usr/local/apache/logs/httpd.pid 2>/dev/null` 2>/dev/null || true。对比graceful好点。如果配置文件错误,graceful不会造成httpd服务异常。


#如果怕安全重启服务会造成服务异常, 可以不重启服务,而是使用copytruncate选项。他是先拷贝日志,然后清空日志的方式。拷贝开始和拷贝结束之间的日志会丢失(一般1-2秒钟)。把上面的sharedscripts和postrotate和endscript这几行删除。



设置定时任务:

也可以不设置定时任务,因为logrotate会自动分割,时间大概是凌晨3点左右。

1 0 * * * /usr/sbin/logrotate -f /etc/logrotate.d/httpd > /dev/null 2>&1