我发现 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 命令。
Debian 8 (Jessie) 中包含的
logrotate
(版本 3.8.7)不支持createolddir
. 从您系统的logrotate(8)
手册中可以看出这一点。Debian 9 (Stretch
logrotate
)包括支持createolddir
.