我发现 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) 中包含的(版本logrotate
3.8.7)不支持createolddir
.这应该从手册logrotate(8)
在您的系统上。
Debian 9 (Stretch) 包括logrotate
版本 3.11.0做支持createolddir
。