GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So verwenden Sie das Cron-Job-Format zum Planen von Aufgaben in Linux

Cron ist ein Scheduling-Daemon, der ein bestimmtes Format zum Ausführen von Jobs verwendet. So verwenden Sie es unter Linux für die automatische Aufgabenausführung.

Cron ist eines der nützlichsten Dienstprogramme, die Sie in jedem Linux- oder Unix-Betriebssystem finden und verwenden können. Die Verwendung von Cron ist ein beliebter Weg, um regelmäßig Aufgaben wie Befehle oder Shell-Skripte auszuführen. Diese periodischen Aufgaben werden auch als Cron-Jobs bezeichnet und zu einem bestimmten Zeitpunkt ausgeführt.

Sie können beispielsweise einen Cron-Job einrichten, um sich wiederholende Aufgaben zu automatisieren, z. B. das Sichern einer Datenbank oder von Daten, das Aktualisieren des Systems mit den neuesten Sicherheitspatches, das Senden von E-Mails usw.

Cron ist nach dem griechischen Wort „Chronos“ benannt, das für Zeit verwendet wird. Diese Anleitung bietet einen Überblick darüber, wie Sie Jobs mit crontab planen und wie Sie das spezielle Syntaxformat von cron verwenden, um sie auszuführen.

Was ist die crontab-Datei?

Allen voran die crontab-Datei ist eine einfache Textdatei, die eine Liste von Befehlen enthält, die zu bestimmten Zeiten ausgeführt werden sollen. Es wird mit crontab bearbeitet Befehl. Die Befehle in der crontab-Datei (und ihre Laufzeiten) werden vom Cron-Daemon überprüft, der sie im Hintergrund des Systems ausführt.

Jede Zeile einer Crontab-Datei ist entweder „aktiv“ oder „inaktiv“. Eine „aktive“ Zeile ist eine Umgebungseinstellung oder ein Cron-Befehlseintrag. Eine „inaktive“ Zeile ist alles, was ignoriert wird, einschließlich Kommentare.

Leerzeilen und führende Leerzeichen und Tabulatoren werden ignoriert. Zeilen, deren erstes Nicht-Leerzeichen ein Nummernzeichen ist (# ) werden als Kommentare interpretiert und ignoriert.

Bitte beachten Sie, dass Kommentare in derselben Zeile wie Cron-Befehle nicht zulässig sind, da sie als Teil des Befehls interpretiert werden. Aus dem gleichen Grund sind Kommentare in derselben Zeile wie Umgebungsvariableneinstellungen nicht erlaubt.

Cron-Job-Formateinträge

Jeder Eintrag in einer crontab-Datei besteht aus sechs Feldern, die in der folgenden Reihenfolge angegeben werden:

minute hour day month weekday command
Feld Mögliche Werte Syntax Beschreibung
Minute 0 – 59 11 * * * *  Der Cron-Job wird jedes Mal gestartet, wenn die Systemuhr 11 in der Minutenposition anzeigt.
Stunde 0 – 23 0 1 * * * Der Cron-Job wird immer dann ausgeführt, wenn die Systemuhr 1:00 Uhr anzeigt (13:00 Uhr würde als 13 codiert).
Tag 0 – 31 0 0 19 * *  Der Tag des Monats ist der 19. Das bedeutet, dass der Job jeden 19. Tag des Monats ausgeführt wird.
Monat 0 =keine und 12 =Dezember 0 0 0 7 * Der numerische Monat ist 7, was bestimmt, dass der Job nur im Juli ausgeführt wird.
Wochentag 0 =Sonntag und 7 =Sonntag 0 0 * * 1 1 an der aktuellen Stelle bedeutet, dass der Job nur montags laufen würde.
Befehl Spezial Die vollständige Folge der auszuführenden Befehle. Befehle, ausführbare Dateien (z. B. Skripte) oder Kombinationen sind zulässig.

Jedes dieser Felder kann auf ein Sternchen (* gesetzt werden ) , was für „first through last“ steht. Um beispielsweise stündlich einen Job auszuführen, geben Sie * ein im Stundenfeld.

Auch Zahlenbereiche sind erlaubt. Bereiche sind zwei durch einen Bindestrich getrennte Zahlen (- ). Der angegebene Bereich ist inklusive. Zum Beispiel 8-11 für einen „Stunden“-Eintrag gibt die Ausführung um 8 an , 9 , 10 , und 11 .

Listen sind erlaubt. Eine Liste ist eine Reihe von Zahlen (oder Bereichen), die durch Kommas (,) getrennt sind ). Hier einige Beispiele:1,2,5,9 oder 0-4,8-12 .

Schritte sind auch nach einem Sternchen erlaubt , wenn Sie also „alle zwei Stunden“ sagen möchten, können Sie */2 verwenden .

Der Cron-Daemon überprüft die Crontab einmal pro Minute. Befehle werden von cron ausgeführt, wenn die Felder für Minute, Stunde und Monat mit der aktuellen Uhrzeit übereinstimmen und mindestens eines der beiden Tagesfelder (Monatstag oder Wochentag) mit dem aktuellen Tag übereinstimmt.

Crons spezielles Syntaxformat

Cron-Jobs bieten auch einige speziell formatierte Zeichenfolgen an, die anstelle der fünf Zeit- und Datumsfelder verwendet werden können. Sie sind im Wesentlichen Abkürzungen für den angegebenen äquivalenten numerischen Zeitplan:

Zeichenfolge Mmeinen
@reboot Führt den angegebenen Befehl einmal aus, beim Start .
@jährlich, @jährlich Beide führen die angegebene Aufgabe jedes Jahr aus um 12:00 Uhr am 1. Januar. Dies entspricht der Angabe von „0 0 1 1 *“ in der crontab-Datei.
@monatlich Führt den Job einmal im Monat aus , am 1., um 00:00 Uhr. In der Standard-Cron-Syntax entspricht dies „0 0 1 * *“
@weekly Führt den Job einmal pro Woche aus um 12:00 Uhr am Sonntag. In der Standard-Cron-Syntax entspricht dies „0 0 * * 0“
@daily, @midnight Beide führen den Cronjob jeden Tag aus um 12:00 Uhr. Dies entspricht der Angabe von „0 0 * * *“ in der crontab-Datei.
@hourly Führt den Job am Anfang jeder Stunde aus . In der Standard-Cron-Syntax entspricht dies „0 * * * *“

Verwendung des Crontab-Befehls

Die crontab command erstellt eine crontab-Datei, die Befehle und Anweisungen enthält, indem ein bestimmtes Cron-Job-Format verwendet wird, das der Cron-Daemon ausführen kann. Sie können die crontab verwenden Befehl mit den folgenden Optionen:

Befehl Beschreibung
crontab -e Bearbeiten Ihre crontab-Datei oder erstellen Sie eine, falls sie noch nicht existiert.
crontab -l Anzeige Ihre crontab-Datei.
crontab -r Entfernen Ihre crontab-Datei.
crontab -u Benutzer In Verbindung mit anderen Optionen erlaubt Ihnen diese Option, die crontab-Datei des Benutzers zu ändern oder anzuzeigen. Nur Administratoren können diese Option verwenden.

Um beispielsweise Ihre eigene crontab-Datei zu bearbeiten oder zu erstellen, geben Sie am Shell-Prompt den folgenden Befehl ein:

crontab -e

Cron muss nach dem Ändern der Crontab-Datei nicht neu gestartet werden. Cron prüft die Änderungszeit auf allen Crontabs und lädt die geänderten neu.

So bearbeiten Sie eine Crontab-Datei, die einem anderen Benutzer gehört

Um die crontab-Datei zu bearbeiten, die Root oder einem anderen Benutzer gehört, müssen Sie Root werden. Natürlich müssen Sie nicht root werden, um Ihre crontab-Datei zu bearbeiten.

crontab -u [username] -e

So entfernen Sie eine Crontab-Datei

Meistens möchten Sie die Crontab-Datei nicht entfernen. Möglicherweise möchten Sie jedoch einige Zeilen aus der crontab-Datei entfernen.

Führen Sie den folgenden Befehl aus, um die Crontab-Datei Ihres Benutzers zu entfernen:

crontab -r

Cron-Job-Beispiele

Befehl Cronjob
* * * * * /root/script.sh Cron-Job jede Minute ausführen.
0 * * * * /root/Skript .sh Cron-Job stündlich ausführen.
0 0 * * * /root/Skript .sh Cron Job jeden Tag um Mitternacht ausführen.
0 2 * * * /root/Skript .sh Cron-Job täglich um 2 Uhr morgens ausführen.
0 0 15 * * /root/Skript .sh Cron-Job jeden 15. des Monats um Mitternacht ausführen.
0 0 0 12 * /root/Skript .sh Cron-Job am 1. Dezember um Mitternacht ausführen.
0 0 * * 6 /root/Skript .sh Cron-Job am Samstag um Mitternacht ausführen.
0 15 * * 1-5 /root/script.sh Cron-Job täglich von Montag bis Freitag um 15:00 Uhr ausführen.
*/5 * * * * /root/script.sh Cron-Job alle 5 Minuten ausführen.
0 8-16 * * * /root/script.sh Cron Job täglich, stündlich, zur vollen Stunde von 8:00 bis 16:00 Uhr ausführen.
0 4 * * 2,4 /root/script.sh Cron-Job am Dienstag und Donnerstag um 4 Uhr morgens ausführen.
@reboot /root/script.sh Cron-Job ausführen, wenn das System startet.

Fazit

Sie haben jetzt ein gutes Verständnis dafür, wie Sie das Cron-Job-Format verwenden, um Aufgaben in Linux zu planen. Verwenden Sie die in diesem Leitfaden vorgestellten Beispiele, um Cronjobs auf Ihrem System zu erstellen und zu planen. In Kombination mit Shell-Skripten können Sie Aufgaben automatisieren, die normalerweise langwierig oder kompliziert sind.

Für weitere Informationen finden Sie auf den Manpages von cron und crontab hier und hier hervorragende Informationen und Beschreibungen zur Funktionsweise des cron-Systems.


Linux
  1. So verwenden Sie Cron unter Linux

  2. So verwenden Sie den Linux-Grep-Befehl

  3. So verwenden Sie den Verlaufsbefehl unter Linux

  4. Wie ich Cron unter Linux verwende

  5. So verwenden Sie den Befehl „at“, um eine Aufgabe zu einem bestimmten oder späteren Zeitpunkt in Linux zu planen

So verwenden Sie den Linux-Ping-Befehl

So verwenden Sie den fd-Befehl auf einem Linux-System

So verwenden Sie den Jobs-Befehl unter Linux

So verwenden Sie den Top-Befehl als Task-Manager in Linux

Wie verwende ich den wget-Befehl unter Linux?

Wie verwende ich den xargs-Befehl unter Linux?