J'ai mis un logrotate
fichier de configuration /etc/logrotate.d/
et je m'attendais à ce que les journaux tournent à un moment cohérent; cependant, ils ne le font pas ... les temps de rotation des journaux sont apparemment aléatoires de +/- une heure.
Pourquoi les heures de début de rotation des journaux sont-elles aléatoires et comment puis-je changer cela?
Informatif: mon fichier de configuration logrotate ressemble à ceci ...
/opt/backups/network/*.conf {
copytruncate
rotate 30
daily
create 644 root root
dateext
maxage 30
missingok
notifempty
compress
delaycompress
postrotate
## Create symbolic links in daily/
PATH=`/usr/bin/dirname $1`;
FILE=`/bin/basename $1`;
/bin/ln -s $1 $PATH/daily/$FILE
endscript
}
Pas la réponse, mais j'ai récemment essayé de comprendre cela pour une autre raison et je n'ai trouvé aucune documentation sur la façon dont Redhat 6, Centos, etc. exécutent cron. Voici ce que j'ai inversé l'ingénierie:
crond
fonctionne toujours au démarrage du système - il charge tous les fichiers dans/etc/cron.d
/etc/cron.d/0hourly
exécute tous les fichiers dans/etc/cron.hourly
/etc/cron.hourly/0anacron
courtanacron
/etc/anacrontab
/etc/anacrontab
s'exécute (viarun-parts
)/etc/cron.daily
,/etc/cron.weekly
et/etc/cron.monthly
C'est donc plus compliqué que dans les versions précédentes.
Il est possible de restaurer l'ancien comportement en ajoutant les entrées horaires, hebdomadaires et mensuelles dans
/etc/crontab
(qui est maintenant vide), maisanacrontab
devra également être mis à jour. Cela peut ou non interrompre les futures mises à jour ...la source
D'autres réponses couvrent comment mais pas nécessairement pourquoi . La raison est d'empêcher les tâches cron simultanées de tuer votre infrastructure. (Imaginez un stockage partagé, ou peut-être 1000 serveurs exécutés sur un hôte VM, ou simplement des tâches nocturnes qui touchent un service en réseau.)
Je résout toujours ce problème pour la rotation des journaux en particulier sur mes systèmes en déplaçant le travail de rotation des journaux spécifique
cron.daily
d'une entrée avec une heure codée en durcron.d
. De cette façon, vous obtenez toujours des exécutions échelonnées pour des services comme updatedb où le temps n'est vraiment pas essentiel, mais des temps cohérents pour la rotation des journaux.Bien sûr, lorsque vous atteignez une certaine taille, vous voudrez de toute façon que tous vos journaux soient envoyés de l'hôte à un serveur de journaux, puis le temps de rotation des fichiers sur les nœuds individuels est moins important, car ceux-ci ne sont là que pour commodité (généralement après la fin du fichier) ou en dernier recours. Ensuite, vous définiriez définitivement la rotation sur votre serveur de journaux pour qu'elle soit systématique.
la source