Eu achei o comando createolddir muito útil para logrotate para limpar dinamicamente minhas pastas de log e fazer isso funcionar com sucesso em outros servidores Debian sem problemas.
Apenas para um servidor, recém-configurado com o Debian 8, todas as atualizações feitas, logrotate lança este erro estranho para 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
O arquivo fail2ban tem a seguinte /etc/logrotate.d/fail2ban
aparência:
/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
}
Eu também tentei com a opção createolddir 644 root root
- mesmo resultado.
As permissões estão todas em ordem. Não sei como resolver isso e fazer o logrotate reconhecer o comando createolddir.
A
logrotate
(versão 3.8.7) incluída no Debian 8 (Jessie) não suporta arquivoscreateolddir
. Isso deve ser evidente nologrotate(8)
manual do seu sistema.Debian 9 (Stretch) inclui a
logrotate
versão 3.11.0 que suportacreateolddir
.