Jeden Tag ein Skript mit einem Cronjob ausführen


8

Ich brauche den genauen Code, den ich verwenden würde, weil ich ihn nicht herausfinden kann. Ich habe crontab -eeinen Cron-Job eingerichtet, aber wenn ich ihn speichere, funktioniert er nie. Ich versuche auch nur, eine Datei auszuführen, die newmail.shvom Root-Benutzer aufgerufen wird .


Haben Sie die Antwort auf Ihre Frage gefunden?
Bendaf

Antworten:


10

Wenn Sie möchten, dass die Aufgabe jeden Tag um 15:17 Uhr ausgeführt wird, verwenden Sie Folgendes:

17 15 * * * root newmail.sh

Darin heißt es: "Führen Sie newmail.sh jeden Tag der Woche, jeden Tag des Monats und jeden Monat um 15:17 Uhr als Root aus."

Minute Stunde Dom Monat Dow Benutzer cmd

Minute - Hiermit wird gesteuert, in welcher Minute der Befehl der Befehl ausgeführt wird und zwischen '0' und '59' liegt.

Stunde - Hiermit wird gesteuert, zu welcher Stunde der Befehl ausgeführt wird. Er wird im 24-Stunden-Takt angegeben. Die Werte müssen zwischen 0 und 23 liegen (0 ist Mitternacht).

dom - Dies ist der Tag des Monats, an dem der Befehl ausgeführt werden soll, z. B. um am 19. eines jeden Monats einen Befehl auszuführen. Der dom wäre 19.

Monat Dies ist der Monat, in dem ein angegebener Befehl ausgeführt wird. Er kann numerisch (0-12) oder als Name des Monats (z. B. Mai) angegeben werden.

dow - Dies ist der Wochentag, an dem ein Befehl ausgeführt werden soll. Er kann auch numerisch (0-7) oder als Name des Tages (z. B. Sonne) sein.

Benutzer - Dies ist der Benutzer, der den Befehl ausführt.

cmd - Dies ist der Befehl, den Sie ausführen möchten. Dieses Feld kann mehrere Wörter oder Leerzeichen enthalten.

von: http://www.unixgeeks.org/security/newbie/unix/cron-1.html


auf Ubuntu 16 und höher ist das neue Format: "mh dom mon dow Befehl"
Bendaf

5
sudo crontab -e

Fügen Sie diese Zeilen am Ende der Datei hinzu

*/1 * * * * wget -O /dev/null  project_crone_URL

(Cron einmal in 1 Minute ausführen)

0 0 * * * wget -O /dev/null  project_crone_URL

(Cron einmal in 24 Stunden ausführen)

Datei speichern

Starten Sie crontab mit diesem Befehl

sudo /etc/init.d/cron start

Stoppen Sie crontab mit diesem Befehl

sudo /etc/init.d/cron stop

Starten Sie crontab mit diesem Befehl neu

sudo /etc/init.d/cron restart

1

Wenn Sie verwenden, crontab -eda Ubuntu 16.0+ nicht über das Benutzerfeld verfügt, lautet das richtige Format:

17 15 * * * newmail.sh

Darin heißt es: "Führen Sie newmail.sh jeden Tag der Woche, jeden Tag des Monats, jeden Monat um 15:17 Uhr aus."

Andere Möglichkeiten Die Antwort von dm78 ist korrekt und enthält die genaue Beschreibung des Formats.

Auch wenn etwas schief geht und Sie ein Mailsystem installiert haben, erhalten Sie eine Nachricht. Weitere Informationen finden Sie in dieser Antwort

Wenn Sie an der Protokollierung von Cronjobs interessiert sind , können Sie diese Antwort verwenden .


1
Es hängt davon ab, welche Crontab Sie bearbeiten. Das crontab -eDing hat kein Benutzerfeld (wie Sie richtig sagen) , aber die Datei /etc/crontab(das sogenannte System crontab) und die Dateien unten /etc/cron.d tun ein Benutzerfeld haben.
PerlDuck
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.