11 Cron-Befehlsbeispiele in Linux [Cron-Jobs planen]

In diesem Artikel werden wir überprüfen und sehen, wie wir Linux-Aufgaben im Hintergrund automatisch in regelmäßigen Abständen mit dem Crontab-Befehl planen und ausführen können.

Die manuelle Bearbeitung einer häufigen Aufgabe ist für Systemadministratoren eine mühsame Aufgabe, und solche Aufgaben können mit dem Cron-Daemon in einem Linux- oder Unix-ähnlichen Betriebssystem automatisch im Hintergrund ohne menschliches Eingreifen geplant und ausgeführt werden.

Sie können das Linux-System-Backup, geplante Updates, und Dateisynchronisierung automatisieren und vieles mehr mithilfe des Cron-Daemons, der verwendet wird, um geplante Aufgaben von der Befehlszeile auszuführen, oder Sie können Online-Tools zur Generierung von Cron-Jobs verwenden.

Cron wacht jede Minute auf und überprüft geplante Aufgaben in der Zählweise – Crontab (CRON TABle) ist eine Tabelle, in der wir solche wiederkehrenden Aufgaben planen können.

Tipp: Jeder Benutzer kann seinen eigenen Crontab haben, um Aufgaben zu erstellen, zu ändern und zu löschen. Standardmäßig ist Cron für Benutzer aktiviert, jedoch können wir Benutzer einschränken, indem wir einen Eintrag in die Datei /etc/cron.deny hinzufügen.

Crontab in Linux

Die Crontab-Datei besteht aus Befehlen pro Zeile und hat tatsächlich sechs Felder, die entweder durch Leerzeichen oder Tabulatoren getrennt sind. Die ersten fünf Felder repräsentieren die Zeit zum Ausführen von Aufgaben und das letzte Feld ist für den Befehl.

  • Minute (Werte zwischen 0-59)
  • Stunde (Werte zwischen 0-23)
  • Tag des Monats (Werte zwischen 1-31)
  • Der Monat des Jahres (nimmt Werte zwischen 1-12 oder Jan-Dez an, Sie können auch die ersten drei Buchstaben des Namens jedes Monats verwenden, z. B. Jan oder Jun. )
  • Wochentag (nimmt Werte zwischen 0-6 oder So-Sa an, auch hier können Sie die ersten drei Buchstaben des Namens jeden Wochentags verwenden, z. B. So oder Mit. )
  • Befehl – Der /Pfad/zum/Befehl oder Skript, den Sie planen möchten.

1. Crontab-Einträge auflisten

Listen oder verwalten Sie die Aufgabe mit dem crontab-Befehl mit der Option -l für den aktuellen Benutzer.

# crontab -l

00 10 * * * /bin/ls >/ls.txt

2. Crontab-Einträge bearbeiten

Um den crontab-Eintrag zu bearbeiten, verwenden Sie die Option -e, wie unten gezeigt. Das folgende Beispiel öffnet geplante Jobs im VI-Editor. Nehmen Sie die notwendigen Änderungen vor und beenden Sie, indem Sie die Tasten :wq drücken, die die Einstellung automatisch speichern.

# crontab -e

3. Geplante Cron-Jobs eines Benutzers auflisten

Um geplante Jobs eines bestimmten Benutzers namens tecmint mit der Option -u (Benutzer) und -l (Liste) aufzulisten.

# crontab -u tecmint -l

no crontab for tecmint

Hinweis: Nur root-Benutzer haben vollständige Berechtigungen, um die crontab-Einträge anderer Benutzer zu sehen. Normale Benutzer können keine anderen anzeigen.

4. Crontab-Eintrag entfernen

Vorsicht: Der Crontab mit dem Parameter -r entfernt komplette geplante Jobs ohne Bestätigung vom Crontab. Verwenden Sie die Option -i, bevor Sie den crontab des Benutzers löschen.

# crontab -r

5. Aufforderung vor dem Löschen des Crontabs

crontab mit der Option -i fordert vor dem Löschen der crontab des Benutzers eine Bestätigung vom Benutzer an.

# crontab -i -r

crontab: really delete root's crontab?

6. Erlaubte Sonderzeichen (*, -, /, ?, #)

  • Asterisk(*) – Alle Werte im Feld oder jeden möglichen Wert übereinstimmen.
  • Bindestrich(-) – Um einen Bereich zu definieren.
  • Schrägstrich (/) – 1. Feld /10 bedeutet alle zehn Minuten oder Inkrement des Bereichs.
  • Das Komma (,) – Um Elemente zu trennen.

7. Systemweite Cron-Zeitplanung

A system administrator can use the predefined cron directory as shown below.

  • /etc/cron.d
  • /etc/cron.daily
  • /etc/cron.hourly
  • /etc/cron.monthly
  • /etc/cron.weekly

8. Planen einer Aufgabe für eine bestimmte Zeit

Die untenstehenden Aufgaben löschen leere Dateien und Verzeichnisse aus /tmp um 12:30 Uhr morgens täglich. Sie müssen den Benutzernamen angeben, um den crontab-Befehl auszuführen. Im untenstehenden Beispiel führt der Benutzer root einen Cron-Job aus.

# crontab -e

30 0 * * *   root   find /tmp -type f -empty -delete

9. Besondere Zeichenfolgen für gemeinsame Zeitpläne

Strings Meanings
@reboot The command will run when the system reboots.
@daily Once per day or may use @midnight.
@weekly Once per week.
@yearly Once per year. we can use the @annually keyword also.

Sie müssen fünf Felder des Cron-Befehls durch Schlüsselwörter ersetzen, wenn Sie denselben verwenden möchten.

10. Mehrere Befehle mit Doppel-Ampersand(&&)

In dem untenstehenden Beispiel werden Befehl1 und Befehl2 täglich ausgeführt.

# crontab -e

@daily <command1> && <command2>

11. E-Mail-Benachrichtigungen deaktivieren.

Standardmäßig sendet Cron E-Mails an das Benutzerkonto, das den Cronjob ausführt. Wenn Sie dies deaktivieren möchten, fügen Sie Ihrem Cron-Job etwas Ähnliches wie das folgende Beispiel hinzu. Die Verwendung der Option >/dev/null 2>&1 am Ende der Datei leitet alle Ausgaben der Cron-Ergebnisse unter /dev/null um.

[root@tecmint ~]# crontab -e
* * * * * >/dev/null 2>&1

Schlussfolgerung: Die Automatisierung von Aufgaben kann uns helfen, unsere Aufgaben auf bessere, fehlerfreie und effiziente Weise auszuführen. Sie können eine Handbuchseite von Crontab für weitere Informationen aufrufen, indem Sie den Befehl ‚man crontab‚ in Ihrem Terminal eingeben.

Source:
https://www.tecmint.com/11-cron-scheduling-task-examples-in-linux/