/etc/init.d/apache2 文件正在进行日志轮换

/etc/init.d/apache2 文件正在进行日志轮换

我监控到了一些奇怪的行为。每周在 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 守护进程文件日志旋转!

相关内容