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

So automatisieren Sie Aufgaben in Linux mit Crontab

Manchmal haben Sie möglicherweise Aufgaben, die regelmäßig oder in bestimmten vordefinierten Intervallen ausgeführt werden müssen. Zu diesen Aufgaben gehören das Sichern von Datenbanken, das Aktualisieren des Systems, das Ausführen regelmäßiger Neustarts und so weiter. Solche Aufgaben werden unter Linux als Cron-Jobs (Crontab) bezeichnet. Cron-Jobs werden zur Automatisierung von Aufgaben verwendet die sich als nützlich erweisen und helfen, die Ausführung sich wiederholender und manchmal alltäglicher Aufgaben zu vereinfachen. Cron ist ein Daemon, mit dem Sie diese Jobs planen können, die dann in bestimmten Intervallen ausgeführt werden. In diesem Tutorial erfahren Sie, wie Sie Jobs mit Cron-Jobs planen.

Die Crontab-Datei

Eine Crontab-Datei, auch bekannt als Cron-Tabelle , ist eine einfache Textdatei, die Regeln oder Befehle enthält, die das Zeitintervall für die Ausführung einer Aufgabe angeben. Es gibt zwei Kategorien von crontab-Dateien:

1)  Systemweite Crontab-Datei

Diese werden normalerweise von Linux-Diensten und kritischen Anwendungen verwendet, die Root-Rechte erfordern. Die System-crontab-Datei befindet sich unter /etc/crontab und kann nur vom Root-Benutzer aufgerufen und bearbeitet werden. Es wird normalerweise für die Konfiguration von systemweiten Daemons verwendet. Die Crontab-Datei sieht wie folgt aus:

2) Vom Benutzer erstellte Crontab-Dateien

Linux-Benutzer können mit Hilfe des Befehls crontab auch eigene Cron-Jobs erstellen. Die erstellten Cron-Jobs werden unter dem Benutzer ausgeführt, der sie erstellt hat.

Alle Cron-Jobs werden in /var/spool/cron (für RHEL- und CentOS-Distributionen) und /var/spool/cron/crontabs (für Debian- und Ubuntu-Distributionen) gespeichert, die Cron-Jobs werden mit dem Benutzernamen des Benutzers aufgelistet, der die erstellt hat Cronjob

Der cron-Daemon läuft unbemerkt im Hintergrund und überprüft die /etc/crontab Datei und /var/spool/cron und /etc/cron.d*/ Verzeichnisse

Die crontab Der Befehl wird zum Bearbeiten von Cron-Dateien verwendet. Werfen wir einen Blick auf die Anatomie einer crontab-Datei.

Die Anatomie einer Crontab-Datei

Bevor wir weitermachen, ist es wichtig, dass wir zuerst untersuchen, wie eine crontab-Datei aussieht. Die grundlegende Syntax für eine crontab-Datei besteht aus 5 Spalten, dargestellt durch Sternchen, gefolgt von dem auszuführenden Befehl.

*    *    *    *    *    Befehl

Dieses Format kann auch wie folgt dargestellt werden:

m h d moy dow-Befehl

ODER

m h d moy dow /path/to/script

Lassen Sie uns jeden Eintrag erläutern

  • m :Dies repräsentiert Minuten. Es wird von 0 bis 59 angegeben
  • h :Dies bezeichnet die angegebene Stunde von 0 bis 23
  • d :  Dies repräsentiert den Tag des Monats. Angegeben zwischen 1 und 31`
  • Moy :Dies ist der Monat des Jahres. Es wird zwischen 1 und 12 angegeben
  • doy :  Dies ist der Wochentag. Es wird zwischen 0 und 6 angegeben, wobei 0 =Sonntag
  • Befehl :Dies ist der auszuführende Befehl, z. B. Sicherungsbefehl, Neustart und Kopieren

Cronjobs verwalten

Nachdem wir uns die Architektur einer Crontab-Datei angesehen haben, sehen wir uns an, wie Sie Cron-Jobs erstellen, bearbeiten und löschen können

Cronjobs erstellen

Um einen Cron-Job als Root-Benutzer zu erstellen oder zu bearbeiten, führen Sie den Befehl

aus

# crontab -e

Um als anderer Benutzer einen Cron-Job zu erstellen oder eine Aufgabe zu planen, verwenden Sie die Syntax

# crontab -u Benutzername -e

Um beispielsweise einen Cron-Job als Benutzer Pradeep auszuführen, geben Sie den folgenden Befehl ein:

# crontab -u Pradeep -e

Wenn keine Crontab-Datei bereits vorhanden ist, erhalten Sie ein leeres Textdokument. Wenn eine crontab-Datei vorhanden war, ermöglicht die  -e-Option , die Datei zu bearbeiten,

crontab-Dateien auflisten

Um die erstellten Cron-Jobs anzuzeigen, übergeben Sie einfach die Option -l wie gezeigt

# crontab -l

Löschen einer Crontab-Datei

Um eine Cron-Datei zu löschen, führen Sie einfach crontab -e aus und löschen oder die Zeile des gewünschten Cron-Jobs und speichern die Datei.

Führen Sie den folgenden Befehl aus, um alle Cron-Jobs zu entfernen:

# crontab -r

Lassen Sie uns einen Blick auf verschiedene Möglichkeiten werfen, Aufgaben zu planen

Crontab-Beispiele in Planungsaufgaben.

Alle Cron-Jobs haben einen Shebang-Header wie gezeigt

#!/bin/bash

Dies zeigt die von Ihnen verwendete Shell an, die in diesem Fall die Bash-Shell ist.

Geben Sie als Nächstes das Intervall an, in dem Sie die Aufgaben planen möchten, indem Sie die Cron-Job-Einträge verwenden, die wir zuvor angegeben haben.

Um ein System täglich um 12:30 Uhr neu zu starten, verwenden Sie die Syntax:

30  12 *  *  * /sbin/reboot

Um den Neustart um 4:00 Uhr zu planen, verwenden Sie die Syntax:

0  4  *  *  *  /sbin/reboot

HINWEIS: Das Sternchen * wird verwendet, um alle Datensätze abzugleichen

Um ein Skript zweimal täglich auszuführen, z. B. 4:00 Uhr und 16:00 Uhr, verwenden Sie die Syntax.

0  4,16  *  *  *  /Pfad/zu/Skript

Um einen Cronjob so zu planen, dass er jeden Freitag um 17:00 Uhr ausgeführt wird, verwenden Sie die folgende Syntax:

0  17  *  *  Fr  /path/to/script

ODER

0 17  *  *  *  5  /Pfad/zu/Skript

Wenn Sie Ihren Cron-Job alle 30 Minuten ausführen möchten, verwenden Sie:

*/30  *  *  *  * /Pfad/zu/Skript

Um cron so zu planen, dass es alle 5 Stunden ausgeführt wird, führen Sie

aus

*  */5  *  *  *  /Pfad/zu/Skript

Um ein Skript an ausgewählten Tagen auszuführen, z. B. Mittwoch und Freitag um 18:00 Uhr, führen Sie Folgendes aus:

0  18  *  *  Mi, Fr  /path/to/script

Um mehrere Aufgaben für die Verwendung eines einzelnen Cron-Jobs zu planen, trennen Sie die Aufgaben mit einem Semikolon, zum Beispiel:

*  *  *  *  *  /pfad/zu/script1; /path/to/script2

Spezielle Zeichenfolgen verwenden, um Zeit beim Schreiben von Cron-Jobs zu sparen

Einige der Cron-Jobs können einfach mit speziellen Zeichenfolgen konfiguriert werden, die bestimmten Zeitintervallen entsprechen. Zum Beispiel

1)  @hourly timestamp entspricht  0 * * * *

Es wird in der ersten Minute jeder Stunde eine Aufgabe ausgeführt.

@hourly /path/to/script

2) @daily timestamp entspricht  0 0 * * *

Es führt eine Aufgabe in der ersten Minute eines jeden Tages (Mitternacht) aus. Es ist praktisch, wenn Sie tägliche Jobs ausführen.

@daily /path/to/script

3) @weekly   timestamp entspricht  0 0 1 * mon

Es führt in der ersten Minute jeder Woche einen Cron-Job aus, wobei eine Woche am Montag beginnt.

@weekly /path/to/script

3) @monthly ähnelt dem Eintrag 0 0 1 * *

Es führt eine Aufgabe in der ersten Minute des ersten Tages des Monats aus.

@monatlich /path/to/script

4) @yearly entspricht 0 0 1 1 *

Es führt in der ersten Minute jedes Jahres eine Aufgabe aus und ist nützlich, um Neujahrsgrüße zu senden 🙂

@monatlich /path/to/script

Crontab-Einschränkungen

Als Linux-Benutzer können Sie steuern, wer das Recht hat, den Befehl crontab zu verwenden. Dies ist über /etc/cron.deny möglich und /etc/cron.allow Datei. Standardmäßig existiert nur die Datei /etc/cron.deny und enthält keine Einträge. Um einen Benutzer daran zu hindern, das crontab-Dienstprogramm zu verwenden, fügen Sie einfach den Benutzernamen eines Benutzers zur Datei hinzu. Wenn ein Benutzer zu dieser Datei hinzugefügt wird und der Benutzer versucht, den crontab-Befehl auszuführen, wird er/sie auf den folgenden Fehler stoßen.

Damit der Nutzer weiterhin das crontab-Dienstprogramm verwenden kann, entfernen Sie einfach den Nutzernamen aus der Datei /etc/cron.deny.

Wenn die Datei /etc/cron.allow vorhanden ist, können nur die in der Datei aufgeführten Benutzer auf das crontab-Dienstprogramm zugreifen und es verwenden.

Wenn keine Datei vorhanden ist, hat nur der Root-Benutzer die Berechtigung, den crontab-Befehl zu verwenden.

Crontab-Einträge sichern

Es wird immer empfohlen, Ihre Crontab-Einträge zu sichern. Verwenden Sie dazu die Syntax

# crontab -l> /path/to/file.txt

Zum Beispiel

# crontab -l > /home/james/backup.txt

Cron-Logs prüfen

Cron-Protokolle werden in der Datei /var/log/cron gespeichert. Um die Cron-Protokolle anzuzeigen, führen Sie den folgenden Befehl aus:

# cat /var/log/cron

Um Live-Protokolle anzuzeigen, verwenden Sie den tail-Befehl wie gezeigt:

# tail -f /var/log/cron

Fazit

In diesem Handbuch haben Sie gelernt, wie Sie Cron-Jobs erstellen, um sich wiederholende Aufgaben zu automatisieren, wie Sie Backups erstellen und wie Sie Cron-Protokolle anzeigen. Wir hoffen, dass dieser Artikel nützliche Einblicke in Bezug auf Cron-Jobs gegeben hat. Bitte zögern Sie nicht, Ihr Feedback und Ihre Kommentare zu teilen.


Linux
  1. Linux-Tipps zur Verwendung von Cron zum Planen von Aufgaben

  2. So verwenden Sie Cron unter Linux

  3. Automatisieren Sie Systemaufgaben mit crontab auf CentOS 7

  4. Automatisieren Sie Systemaufgaben mit Crontab auf Ubuntu

  5. Wie stelle ich automatische Aufgaben auf einem Linux-VPS mit Cron ein?

Was ist Crontab und wie werden Aufgaben in Linux mit Crontab automatisiert?

So verwalten Sie Cron-Jobs unter Linux einfach und sicher

So automatisieren Sie Aufgaben mit Cron-Jobs in Linux

So planen Sie Aufgaben unter Ubuntu 20.04 mit Crontab

So automatisieren Sie tägliche Jobs unter Linux mit (at)

So planen Sie Jobs mit Cron in Linux