J'ai la configuration suivante qui tourne tout le contenu du dossier Google chaque semaine:
/var/log/google/*.log {
create 0777 www-data www-data
weekly
missingok
rotate 90
compress
delaycompress
notifempty
olddir /var/log/google/old
}
Maintenant, le truc, c’est la rotation tous les lundis matin alors que je veux faire la rotation hebdomadaire tous les mercredis.
Je pensais changer l'entrée suivante dans crontab:
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
Mais je suis confus si cela fonctionnera, car je pourrais trouver logrotate
dans /etc/cron.daily
et non dans /etc/cron.weekly
.
Est-il possible de changer de fichier mercredi ou lundi? Si oui alors comment?
Changer le temps d'exécution des tâches cron hebdomadaires ne vous aidera pas, pour les raisons que vous avez indiquées.
Notez ce que la page de manuel de logrotate
dit à propos de weekly
rotation:
weekly Log files are rotated if the current weekday is less than the
weekday of the last rotation or if more than a week has passed
since the last rotation. This is normally the same as rotating
logs on the first day of the week, but it works better if
logrotate is not run every night.
C'est pourquoi il a tendance à tourner le lundi.
Ce que vous pouvez faire est d’exécuter le mercredi une instance spéciale et distincte de logrotate
, qui ne s’exécute que pour les journaux de Google. Par exemple, créez /etc/logrotate-google.conf
, contenant la configuration que vous avez spécifiée, et créez un travail cron exécuté le mercredi (en tant que root, utilisez donc /etc/crontab
ou /etc/cron.d
):
46 6 * * 3 root logrotate /etc/logrotate-google.conf