Ich verwende Ubuntu 14.04 LTS und Nginx auf einem Digital Ocean VPS und erhalte gelegentlich folgende E-Mails über einen fehlgeschlagenen Cron-Job:
Gegenstand
Cron-Test -x / usr / sbin / anacron || (cd / && run-parts --report /etc/cron.daily)
Der Text der E-Mail lautet:
/etc/cron.daily/logrotate: Fehler: Fehler beim Ausführen des freigegebenen Postrotate-Skripts für die Laufteile '/var/log/nginx/*.log': /etc/cron.daily/logrotate wurde mit Rückkehrcode 1 beendet
Irgendwelche Gedanken darüber, wie ich das lösen kann?
Aktualisieren:
/var/log/nginx/*.log {
weekly
missingok
rotate 52
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
run-parts /etc/logrotate.d/httpd-prerotate; \
fi
endscript
postrotate
invoke-rc.d nginx rotate >/dev/null 2>&1
endscript
}
Aktualisieren:
$ sudo invoke-rc.d nginx rotate
initctl: invalid command: rotate
Try `initctl --help' for more information.
/etc/logrotate.d/nginix
Skriptinvoke-rc.d nginx rotate
fehlschlägt, versuchen Sie, dies als den entsprechenden Benutzer auszuführen, und zeigen Sie uns auch dieses Skript. Fügen Sie die Ausgabe in Ihre ursprüngliche Frage ein. tks.Antworten:
Die Aktion nach dem Drehen scheint falsch zu sein
Versuchen
Wenn Sie sich den
nginx
Befehl ansehen , sehen Sie die Aktionen, die er akzeptiert. Auch die Nachricht, die Sie erhalten haben, sagt überprüfeninitctl --help
Daher sollte das Neuladen funktionieren und das HUP-Signal an nginx senden, um das erneute Öffnen von Protokolldateien zu erzwingen.
quelle
Wie in einer anderen Antwort erwähnt, besteht das Problem darin, dass
invoke-rc.d nginx rotate
ein Fehler zurückgegeben wird, der besagt, dass dierotate
Aktion nicht unterstützt wird. Das Interessante ist, dass esservice nginx rotate
ohne Probleme funktioniert.Ich vermute, dass der
invoke-rc.d
Wrapper nicht alle Aktionen unterstützt, die das eigentliche Nginx-Init-Skript unterstützt.Ein Wechsel
invoke-rc.d nginx rotate
zuservice nginx rotate
sollte das Problem lösen.quelle
Ich bin nicht sicher, ob es, weil
initctl
Dosis dierotate
Option nicht unterstützt , und wann es entfernt wurde, aber Sie sind nicht der einzige, der davon betroffen ist, und es gibt einen offenen Fehlerbericht dafür auf dem Launchpad.Wie in anderen Antworten oben und unten erwähnt, können Sie die Nignx-Logrotate-Datei bearbeiten und die problematische Zeile ersetzen
mit anderen Alternativen, die funktionieren,
Welche Methode Sie auch gewählt haben, bitte nicht, dass Sie eine Datei ändern, die von einem Paket verwaltet wird. Nachdem Sie sie geändert haben, wird sie nicht mehr aktualisiert und Sie müssen das Diff manuell auflösen oder mit a überschreiben neue (die alle bereit sind, enthalten das Update).
quelle
Arbeitete für mich:
Ersetzte
postrotate invoke-rc.d nginx rotate >/dev/null 2>&1
Mit
postrotate service nginx rotate >/dev/null 2>&1
quelle
Ersetzen:
Mit:
Auf neueren Versionen von Nginx scheint dies zu funktionieren. Ich verwende 1.9-Versionen.
quelle