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

So planen Sie Jobs mit Cron in Linux

Sie werden feststellen, dass es viele Aufgaben gibt, die regelmäßig auf Ihrem Linux-System ausgeführt werden müssen. Beispielsweise müssen Sie möglicherweise eine Datenbank aktualisieren oder Benutzerdaten im /home/-Verzeichnis sichern. Während Sie diese Aufgaben manuell ausführen könnten, wäre es effizienter (und zuverlässiger), wenn Sie das Linux-System so konfigurieren würden, dass es sie automatisch für Sie ausführt.

Eine Möglichkeit, dies zu tun, ist die Verwendung von cron. Der Cron-Daemon (/usr/sbin/cron) ermöglicht es Ihnen, Jobs zu planen, die regelmäßig für Sie ausgeführt werden.

crontab-Dateisyntax

Der Cron-Daemon wird standardmäßig auf Linux-Systemen installiert und aktiviert. Einmal pro Minute wird überprüft, ob für die aktuelle Zeit Jobs definiert wurden. Der Cron-Daemon verwendet eine Datei namens crontab die eine Liste von Jobs enthält und wann sie ausgeführt werden sollen. Für das gesamte Linux-System existiert eine crontab-Datei. Jeder Benutzer des Systems kann auch seine eigene crontab-Datei definieren.

Jede Zeile in einer Crontab-Datei definiert einen einzelnen Cron-Job. Die ersten fünf Felder (getrennt durch Leerzeichen – Leerzeichen oder Tabulatoren) definieren, wann
der Cronjob ausgeführt werden soll. Sie verwenden die folgende Syntax:

Feldnummer Feldbezeichnung Bereich
1 Minuten 0-59
2 Stunden 0-23
3 Tag des Monats 1-31
4 Monat 1-12
5 Wochentag 0-7

In einer Benutzer-crontab-Datei geben die nachfolgenden Felder (Feld sechs und höher) den auszuführenden Befehl und seine Option, falls vorhanden, an. In einer System-Crontab-Datei gibt das sechste Feld den Benutzer an, der verwendet werden soll, um den Befehl in den verbleibenden Feldern (ab Feld sieben) auszuführen.

Der Cron-Daemon kann jeden Befehl oder jedes Shell-Skript ausführen. Es ist jedoch keine Benutzerinteraktion verfügbar, wenn der Befehl oder das Shell-Skript ausgeführt wird.

Im Folgenden finden Sie Richtlinien zum Konfigurieren dieser Felder:

  • Wenn Sie möchten, dass ein Job jede Minute, Stunde, Tag oder Monat ausgeführt wird, geben Sie ein Sternchen (*) in das entsprechende Feld ein.
  • Sie können mehrere Einträge in einem Feld in einer durch Kommas getrennten Liste aufnehmen.
  • Sie können einen Bereich angeben, dessen Anfangs- und Endwerte durch einen Bindestrich getrennt sind.
  • Sie können Zeitschritte mit /n konfigurieren (wobei n die Größe des Schritts darstellt).
  • Sie können Monate und Wochentage mit den ersten drei Buchstaben ihrer Namen angeben (z. B. MON, TUE, JAN, FEB). Bei den Buchstaben wird die Groß-/Kleinschreibung nicht beachtet. Wenn Sie jedoch Buchstaben verwenden, können Sie keine Bereiche oder Listen verwenden.
  • Zahlen, die die Wochentage darstellen, beginnen bei 0 für Sonntag und laufen fortlaufend durch die gesamte Woche, wobei 7 wieder Sonntag darstellt. Beispiel:3 ist Mittwoch und 6 Samstag.

Benutzerjobs definieren

Benutzer erstellen und verwalten ihre eigenen crontab-Dateien mit dem crontab-Befehl. Die folgenden Optionen können mit dem crontab-Befehl verwendet werden:

Option Beschreibung
crontab -e Erstellt oder bearbeitet Jobs. Der vi-Editor wird verwendet.
crontab-Datei Ersetzt jede vorhandene Crontab-Datei für den aktuellen Benutzer durch die angegebene Datei, vorausgesetzt, die Datei enthält eine Liste von Jobs mit der richtigen Syntax.
crontab -l Zeigt aktuelle Jobs an.
crontab -r Löscht alle Jobs.

Angenommen, Sie möchten einen Cron-Job definieren, der den Inhalt des Home-Verzeichnisses Ihres Benutzers jede Nacht um 17:05 Uhr auf ein externes USB-Laufwerk kopiert, das in /media/USB eingebunden ist. Sie müssten Folgendes tun:

1. Öffnen Sie eine Terminalsitzung.

2. Geben Sie am Shell-Prompt „crontab -e“ ein.

# crontab -e

Wenn Sie zum ersten Mal einen Cron-Job definieren, wird für Ihren Benutzer eine leere Crontab-Datei erstellt.

3. Drücken Sie die Taste I und geben Sie dann Folgendes ein:

5 17 * * * cp ~/* /media/USB

4. Drücken Sie Esc und geben Sie dann „:wq!“ ein.

5. Sie können festlegen, welche Benutzer Cronjobs erstellen dürfen und welche nicht, indem Sie die folgenden beiden Dateien erstellen:

  1. /etc/cron.allow :Benutzer, die in dieser Datei aufgeführt sind, können Cron-Jobs erstellen.
  2. /etc/cron.deny :Benutzer, die nicht in dieser Datei aufgeführt sind, können Cronjobs erstellen.

Wenn die Datei /etc/cron.allow existiert, ist sie die einzige ausgewertete Datei; /etc/cron.deny wird in dieser Situation ignoriert. Wenn keine dieser Dateien existiert, darf nur der Root-Benutzer Benutzer-Cron-Jobs definieren.


Linux
  1. So verwenden Sie Cron unter Linux

  2. So planen Sie Cron-Jobs mit Crontab

  3. So planen Sie Jobs mit dem Befehl „at“ unter Linux

  4. Wie schreibe ich eine Datei mit C in Linux?

  5. Stellen Sie Cron-Jobs wieder her, die versehentlich mit crontab -r entfernt wurden

So zeigen Sie Cron-Jobs in Linux an oder listen sie auf

Cron-Jobs und Crontab unter Linux erklärt

Crontab in Linux mit Beispielen verstehen

Planen Sie Jobs in Linux mit dem Befehl 'at'

So gehen Sie Dateinamen mit Leerzeichen in Linux an

10 nützliche Cron-Beispiele zum Planen von Jobs unter Linux