在CentOS上,Apache2的日志轮转通常是通过logrotate工具来实现的。以下是配置Apache2日志轮转的步骤:
logrotate已安装首先,确保logrotate已经安装在你的CentOS系统上。你可以通过以下命令来检查:
yum list installed | grep logrotate
如果没有安装,可以使用以下命令来安装:
yum install logrotate
logrotatelogrotate的配置文件通常位于/etc/logrotate.conf,而针对特定应用程序的配置文件则放在/etc/logrotate.d/目录下。
你可以创建一个新的配置文件或编辑现有的配置文件。例如,创建一个名为apache2的文件:
sudo vi /etc/logrotate.d/apache2
以下是一个基本的Apache2日志轮转配置示例:
/var/log/httpd/*.log {
    daily
    missingok
    rotate 7
    compress
    notifempty
    create 640 root adm
    sharedscripts
    postrotate
        if /etc/init.d/httpd status > /dev/null ; then \
            /etc/init.d/httpd reload > /dev/null; \
        fi;
    endscript
}
解释:
daily: 每天轮转一次日志。missingok: 如果日志文件丢失,不会报错。rotate 7: 保留7个轮转日志文件。compress: 压缩旧的日志文件。notifempty: 如果日志文件为空,则不轮转。create 640 root adm: 创建新的日志文件,权限为640,属主为root,属组为adm。sharedscripts: 如果有多个日志文件匹配,只执行一次postrotate脚本。postrotate 和 endscript: 在轮转日志后执行的脚本,这里用于重新加载Apache2服务以确保新的日志文件被创建。你可以使用以下命令来测试logrotate配置是否正确:
logrotate -f /etc/logrotate.d/apache2
这个命令会强制执行一次日志轮转,并显示详细的处理过程。
logrotate通常会通过cron定时任务自动运行。你可以检查/etc/cron.daily/logrotate文件,确保它包含了调用logrotate的命令:
/var/lib/logrotate/status
/usr/sbin/logrotate /etc/logrotate.conf
EXITSTATUS=$?
if [ $EXITSTATUS != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITSTATUS]"
fi
exit 0
这个文件会每天运行一次,检查并处理所有需要轮转的日志文件。
通过以上步骤,你应该能够在CentOS上成功配置Apache2的日志轮转。