Root Crontab läuft nicht

9

Aus irgendeinem Grund scheint meine Root-Crontab nicht zu laufen.

Der Versuch, das Gerät jede Nacht um Mitternacht neu zu starten.

Sollte als root folgendes sein:

crontab -e

Dann füge hinzu:

0 0 * * * /sbin/shutdown -r now

Wenn ich mit einigen Werten teste, die die aktuelle Zeit schließen, passiert nichts. Ich habe NTP installiert und sichergestellt, dass die Zeitzone korrekt ist. Ich spezifiziere auch mit der 24-Stunden-Uhr. Um diese Zeile jetzt (17:35 Uhr) zu testen, versuche ich beispielsweise Folgendes einzugeben:

36 17 * * * /sbin/shutdown -r now

Ich habe die Uhrzeit mit Datum -R überprüft. Die Zeit für die Ausführung der Crontab kommt und geht und das System startet nicht neu. Was fehlt mir hier?

Atomiklan
quelle
Nur um sicherzugehen, dass Sie die Crontab nach der Bearbeitung schließen, oder? Wie sind Sie als Root gelaufen? Was ist die Ausgabe von sudo crontab -l | grep -v '#'?
Terdon
Warum ist dieser Debian markiert ? Wenn es um Debian und nicht um Ubuntu geht, fragen Sie bitte unter Unix & Linux .
Muru
Weil Debian das Kernstück von Ubuntu ist, glaube ich.
Atomiklan

Antworten:

10

Ich habe drei Lösungsvorschläge für Sie.

  1. Rufen Sie die Crontab mit auf crontab -e -u root

  2. Stellen Sie sicher, dass am Ende der Cronjob-Datei eine leere Zeile steht. Dies bedeutet, dass jede Zeile mit einer neuen Zeile endet.

  3. Möglicherweise müssen Sie die Ausgabe auf devnull umleiten: shutdown -r now > /dev/null

Hier sind zwei hilfreiche Webseiten für Cronjobs:

CRON-Tester

CRON Generator

Sie können die Cronjobs auch ordentlich mit Webmin handhaben .

Abgesehen davon haben Sie mindestens zwei weitere Möglichkeiten, Ihren Computer um Mitternacht neu zu starten.

Eine Möglichkeit besteht darin, den Befehl shutdown beim Anmelden automatisch als Skript auszuführen, jedoch mit einer bestimmten Zeit als Parameter anstelle von "now":

shutdown -r 00:00

Dies führt jedoch bei jedem Login zu einer Broadcast-Meldung über das bevorstehende Herunterfahren (möglicherweise überhaupt keine schlechte Sache). Nun, Sie können dies auch beim Booten ausführen lassen, indem Sie das Skript in init.d hinzufügen und trotzdem die Meldung erhalten.

Ein anderer ist, atBefehl zu verwenden :

at 0am

Geben Sie den Befehl ein shutdown -r nowund speichern Sie ihn mit Strg + d oder erstellen Sie ein Skript für den Befehl und führen Sie Folgendes aus:

at -f restart_script.sh 0am

Hoffe, diese helfen Ihnen, das gewünschte Ergebnis zu erzielen.

Ahti Komu
quelle
Die Lösung bestand darin, in dev null auszugeben. Ich wundere mich warum?
Atomiklan
Dies liegt daran, dass der Cron-Job über eine eigene Umgebung verfügt, in der kein solches Standard-Eingabe- / Ausgabesystem vorhanden ist, und der Prozess fehlschlägt, weil versucht wird, Nachrichten in eine fehlende Ausgabepipe zu streamen. Cron-Job ist eigentlich eine ganz andere Sache als das Ausführen eines Befehls im Terminal als jeder Benutzer. Freut mich zu hören, dass du es doch zum Laufen gebracht hast.
Ahti Komu
0

System Cron-Jobs werden in der Datei / etc / crontab aufgelistet. Wenn Sie diese Datei direkt bearbeiten, können Sie den Neustartbefehl als root ausführen.

deshalb,

$ sudo vi /etc/crontab

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
  23 20 *  *  *  root  shutdown  -r  now

Stellen Sie sicher, dass Sie die Cron-Protokolldatei nach dem Bearbeiten der Crontab überprüfen, da Sie wissen, ob die Cron erfolgreich installiert wurde.

Ich habe es getestet und es hat bei mir funktioniert. Neustart meines Systems um 20.23 Uhr

Viel Glück!

Regelbrecher4
quelle
-3

36 17 * * * etc ..

36 17 ist keine Möglichkeit, die richtige Zeit in Ihrem Cron anzugeben.

Überprüfen Sie per Datumsbefehl, ob Ihr System in US-Zeit oder in Europ-Zeit arbeitet

Verwenden Sie 17 36, wenn die europäische Zeit und Ihr System die 24-Stunden-Zeit verwenden, oder 5 36, wenn Ihr System die US-Zeit und die 12-Stunden-Zeit verwendet

toto
quelle
Nicht wahr! Cron verwendet kein 12-Stunden-Zeitformat und das Format ist immer mm hh DD MM WD.
Ahti Komu
Bitte lesen Sie das nächste Mal den ganzen Beitrag.
Atomiklan