我监控到了一些奇怪的行为。每周在 logrotate 进程时间,apache2 守护进程脚本 /etc/init.d/apache2 都会像日志文件一样被轮换。
第一周,它创建了另一个文件 apache2.1,并清空了 apache2。第二周,它创建了 apache2.2 和 apache2.1,并清空了 apache2。依此类推。
-rwxr-xr-x 1 root root 6461 2015-04-26 06:25 apache2.4
-rwxr-xr-x 1 root root 6461 2015-05-03 06:25 apache2.3
-rwxr-xr-x 1 root root 6461 2015-05-10 06:25 apache2.2
-rwxr-xr-x 1 root root 6461 2015-05-17 06:25 apache2.1
-rwxr-xr-x 1 root root 0 2015-05-24 06:25 apache2
我不确定这是 Apache 更新错误还是某些计划任务。这是我的日志轮换文件:
/var/log/apache2/*.log {
weekly
missingok
rotate 52
compress
delaycompress
notifempty
create 644 root adm
sharedscripts
postrotate
if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then
/etc/init.d/apache2 reload > /dev/null
fi
endscript
}
我的apache2版本:2.2.12
编辑:logrotate配置文件
# see "man logrotate" for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# packages drop log rotation information into this directory
include /etc/logrotate.d
# no packages own wtmp, or btmp -- we'll rotate them here
/var/log/wtmp {
missingok
monthly
create 0664 root utmp
rotate 1
}
/var/log/btmp {
missingok
monthly
create 0660 root utmp
rotate 1
}
答案1
您可以检查 logrotate 做了什么/var/lib/logrotate.status文件。另请查看/etc/cron.d/目录中是否存在与旋转相关的作业,或者检查/var/log/cron日志。您可能会发现在 /etc 目录中搜索包含 apache2 守护程序脚本的文件很有用:
find /etc/ -type f -exec grep -H '/etc/init.d/apache2' {} \;
答案2
我在相同路径“ ”中找到了一个备份文件/etc/logrotate.d/apache2_backup
,其内容与“ /etc/logrotate.d/apache2
”相同,在我将其移动到另一个位置并只保留原始文件后,我的问题就解决了。
我仍然不明白为什么具有相同内容的 2 个文件会导致 apache 守护进程文件日志旋转!