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.