通过logrotate对Apache日志进行轮转设置

Apache的日志文件可以通过rotatelogs实现日志轮转,但也可以通过logrotate.d实现Apache日志文件的轮转。以下是通过logrotate进行每天轮转Apache日志的设置备忘录。

Apache日志文件可以使用rotatelogs进行轮转,也可以使用logrotate.d进行轮转。以下是在一天为单位使用logrotate进行Apache日志轮转的设置备忘录。

将以下内容以1天为单位记载在/etc/logrotate.d/httpd文件中,可以对Apache日志文件进行轮转。已在AmazonLinux + Apache2.2.29环境下确认。

■环境
亚马逊Linux
Apache 2.2.29

我想要进行日志轮替的 Apache 日志文件是:/var/log/httpd/access_log 和 /var/log/httpd/error_log。

■轮换设定
创建以下文件。

# vi /etc/logrotate.d/httpd
/var/log/httpd/*log {
    daily
    missingok
    rotate 7
    notifempty
    sharedscripts
    compress
    delaycompress
    postrotate
        /sbin/service httpd reload > /dev/null 2>/dev/null || true
    endscript
}
# chmod 644 /etc/logrotate.d/httpd

进行日志轮换设置测试以确保没有出现错误。

# logrotate -dv /etc/logrotate.d/httpd
reading config file /etc/logrotate.d/httpd
reading config info for /var/log/httpd/*log

Handling 1 logs

rotating pattern: /var/log/httpd/*log after 1 days (7 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/httpd/access_log
  log does not need rotating
considering log /var/log/httpd/error_log
not running postrotate script, since no logs were rotated

确认日志轮换的结果。

# ls -lrt /var/log/httpd/
 (略)
-rw-r--r-- 1 root root     607 12月 20 03:09 error_log-20141219.gz
-rw-r--r-- 1 root root    2569 12月 20 03:09 access_log-20141219.gz
-rw-r--r-- 1 root root 2523077 12月 21 03:31 access_log-20141221
-rw-r--r-- 1 root root     215 12月 21 03:32 error_log-20141220.gz
-rw-r--r-- 1 root root   50743 12月 21 03:32 access_log-20141220.gz
-rw-r--r-- 1 root root     332 12月 21 03:32 error_log-20141221
-rw-r--r-- 1 root root     256 12月 21 03:32 error_log
-rw-r--r-- 1 root root 1931294 12月 21 20:41 access_log
#