
Ich bin von cron aufsystemd-cronmit meinem instabilen Debian-System, aber jetzt schlägt der tägliche „Cron-Job“ oft fehl, weil er Mixmaster ausführt, das seine Datenbank aus dem Internet abruft, und wenn der cron-daily.timer ausgelöst wird, bevor das Netzwerk aktiv ist, kann Mixmaster nach dem Aufwachen aus dem Ruhezustand in den RAM den Server nicht erreichen.
Apr 24 11:02:23 run-parts[13608]: /usr/bin/mixmaster-update: Get failed for http://www.noreply.org/echolot/pgp-all.asc (500 Can't connect to www.noreply.org:80)
Apr 24 11:02:23 run-parts[13608]: Downloading of mlist and/or mixring failed (do you need a proxy?). Aborting.
Apr 24 11:02:23 su[13809]: pam_unix(su:session): session closed for user mixmaster
Apr 24 11:02:23 run-parts[13608]: run-parts: /etc/cron.daily/mixmaster exited with return code 22
Ist es möglich, den Timer zu verzögern, bis das Netzwerk betriebsbereit ist?
Antwort1
Verwenden Sie systemd-Timer anstelle von cron.
Dann können Sie in Ihrer Systemd-Einheit angebenAfter=network-online.target and Wants=network-online.target
.
Antwort2
Es kann sinnvoll sein, die Timer von systemd anstelle von cron zu verwenden. Sie sollten dann in der Einheit angeben können, wovon sie abhängt.
https://wiki.archlinux.org/index.php/Systemd#Handling_dependencies
Antwort3
In meinemaufstellender Cron-Job wird jede Minute ausgeführt, wird aber beendet, wenn keine Internetverbindung besteht, beispielsweise durch einen Konnektivitätstest wie
nc -zw3 github.com 22 || exit 0
Wenn endlich eine Internetverbindung besteht, werden einmal am Tag die Anacron-Jobs ausgeführt.