Logrotate 无法识别 createolddir 选项 (Debian)

Logrotate 无法识别 createolddir 选项 (Debian)

我发现 createolddir 命令对于 logrotate 动态清理日志文件夹非常有用,并且可以在其他 Debian 服务器上成功运行,没有任何问题。

仅对于一台服务器,新设置了 Debian 8,所有更新均已完成,logrotate 会针对 createolddir 抛出此奇怪的错误:

root@localhost:~# logrotate -d /etc/logrotate.d/fail2ban

reading config file /etc/logrotate.d/fail2ban
error: /etc/logrotate.d/fail2ban:9 unknown option 'createolddir' -- ignoring line
olddir is now /var/log/x_old_logs/fail2ban_old_logs/
error: /etc/logrotate.d/fail2ban:19 error verifying olddir path /var/log/x_old_logs/fail2ban_old_logs/: Datei oder Verzeichnis nicht gefunden
removing last 1 log configs

fail2ban 文件/etc/logrotate.d/fail2ban如下所示:

/var/log/fail2ban.log {

    weekly
    rotate 4
    compress

    delaycompress
    missingok
    createolddir 
    olddir /var/log/x_old_logs/fail2ban_old_logs/     
    postrotate
    fail2ban-client flushlogs 1>/dev/null
    endscript

    # If fail2ban runs as non-root it still needs to have write access
    # to logfiles.
    # create 640 fail2ban adm
    create 640 root adm
}

我也尝试过该选项createolddir 644 root root- 相同的结果。

权限全部按顺序进行。我不知道如何解决这个问题并使 logrotate 识别 createolddir 命令。

答案1

Debian 8 (Jessie) 中包含的(版本logrotate3.8.7)不支持createolddir.这应该从手册logrotate(8)在您的系统上。

Debian 9 (Stretch) 包括logrotate版本 3.11.0支持createolddir

相关内容