Ich habe eine logrotate
Konfigurationsdatei eingefügt /etc/logrotate.d/
und erwartet, dass sich die Protokolle zu einem konsistenten Zeitpunkt drehen. Sie sind jedoch nicht ... Protokollrotationszeiten sind scheinbar zufällig +/- eine Stunde.
Warum sind die Startzeiten der Protokollrotation zufällig und wie kann ich dies ändern?
Information: Meine logrotate Konfigurationsdatei sieht so aus ...
/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
}
Nicht die Antwort, aber ich habe kürzlich versucht, dies aus einem anderen Grund herauszufinden, und konnte keine Dokumentation darüber finden, wie Redhat 6, Centos usw. cron ausführen. Folgendes habe ich rückgängig gemacht:
crond
läuft noch beim Systemstart - es lädt alle Dateien in/etc/cron.d
/etc/cron.d/0hourly
führt alle Dateien in aus/etc/cron.hourly
/etc/cron.hourly/0anacron
läuftanacron
/etc/anacrontab
/etc/anacrontab
Läufe (überrun-parts
)/etc/cron.daily
,/etc/cron.weekly
und/etc/cron.monthly
Es ist also komplizierter als in früheren Versionen.
Es ist möglich, das alte Verhalten wiederherzustellen, indem die stündlichen, wöchentlichen und monatlichen Einträge wieder in
/etc/crontab
(die jetzt leer sind) hinzugefügtanacrontab
werden. Sie müssen jedoch ebenfalls aktualisiert werden. Dies kann zukünftige Updates beschädigen oder nicht ...quelle
Andere Antworten beziehen sich auf das Wie, aber nicht unbedingt auf das Warum . Der Grund dafür ist, dass gleichzeitig nächtliche Cron-Jobs Ihre Infrastruktur nicht beschädigen. (Stellen Sie sich gemeinsam genutzten Speicher oder vielleicht 1000 Server vor, die auf einem VM-Host ausgeführt werden, oder nur nächtliche Jobs, die einen Netzwerkdienst betreffen.)
Ich löse dieses Problem für die Protokollrotation immer auf meinen Systemen, indem ich den spezifischen Protokollrotationsjob von
cron.daily
einem Eintrag mit einer fest codierten Zeit in verschiebecron.d
. Auf diese Weise erhalten Sie immer noch die gestaffelten Läufe für Dienste wie updatedb, bei denen die Zeit nicht unbedingt erforderlich ist, sondern konsistente Zeiten für die Protokollrotation.Wenn Sie eine bestimmte Größe erreichen, möchten Sie natürlich, dass alle Ihre Protokolle ohnehin vom Host an einen Protokollserver gesendet werden. Die Rotationszeit der Dateien auf den einzelnen Knoten ist dann weniger wichtig, da diese nur für diese Zwecke vorgesehen sind Bequemlichkeit (normalerweise nach dem Ende der Datei) oder als letzter Ausweg. Dann würden Sie die Rotation auf Ihrem Protokollserver definitiv so einstellen, dass sie systematisch ist.
quelle