在 CentOS 系统中,Apache2 通常使用 logrotate 工具来实现日志分割。以下是配置日志分割的步骤:
logrotate。如果没有,请运行以下命令安装:sudo yum install logrotate
logrotate 配置文件,例如 /etc/logrotate.d/apache2。使用文本编辑器创建一个新文件,如 nano 或 vi:sudo nano /etc/logrotate.d/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
}
这个配置文件的解释如下:
/var/log/httpd/*.log:指定要分割的日志文件路径。这里我们分割 /var/log/httpd 目录下的所有日志文件。daily:每天分割一次日志。missingok:如果日志文件不存在,不会产生错误。rotate 7:保留最近 7 天的日志文件。compress:压缩旧日志文件以节省空间。notifempty:如果日志文件为空,则不进行分割。create 640 root adm:创建新的日志文件,权限为 640,属主为 root,属组为 adm。sharedscripts:如果有多个日志文件,只执行一次 postrotate 脚本。postrotate 和 endscript 之间的脚本会在日志分割后执行。这里我们使用它来重新加载 Apache 服务,以便新的日志文件生效。保存并关闭配置文件。
测试 logrotate 配置是否正确。运行以下命令:
sudo logrotate -f /etc/logrotate.d/apache2
这将强制执行一次日志分割,并显示任何错误消息。
现在,Apache2 日志将根据配置的设置自动进行分割。如果你想查看 logrotate 的状态和日志,可以查看 /var/lib/logrotate/status 文件。