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

Cron Job:Ein umfassender Leitfaden für Anfänger 2022

Immer wieder die gleiche Aufgabe zu erledigen, kann eine ziemliche lästige Pflicht sein. Durch das Planen von Cron-Jobs können Benutzer Aufgaben auf einem virtuellen privaten Server oder einem beliebigen Unix-ähnlichen Betriebssystem automatisieren. Dies spart wertvolle Zeit und ermöglicht es Benutzern, sich auf andere wichtige Aufgaben zu konzentrieren.

In diesem umfassenden Leitfaden für Anfänger lernen Sie die Grundlagen von Cronjobs kennen, einschließlich ihrer Typen, Syntax, speziellen Zeichenfolgen und Berechtigungen. Am Ende dieses Artikels können Sie Cron-Jobs verwenden, um Aufgaben effizienter zu planen.

Was ist ein Cronjob?

Cron ist ein Dienstprogramm, mit dem Benutzer Befehle zum Planen von Aufgaben wiederholt zu einem bestimmten Zeitpunkt eingeben können. In Cron geplante Aufgaben werden Cron-Jobs genannt . Benutzer können bestimmen, welche Art von Aufgabe sie automatisieren möchten und wann sie ausgeführt werden soll.

Cron ist ein Daemon – ein Hintergrundprozess, der nicht interaktive Jobs ausführt. Unter Windows sind Sie möglicherweise mit Hintergrundprozessen wie Diensten vertraut die ähnlich wie der cron-Daemon funktionieren.

Ein Daemon ist immer im Leerlauf und wartet auf einen Befehl, der ihn auffordert, eine bestimmte Aufgabe auszuführen. Der Befehl kann auf jedem Computer im Netzwerk eingegeben werden.

Eine Cron-Datei ist eine einfache Textdatei, die Befehle enthält, die regelmäßig zu einem bestimmten Zeitpunkt ausgeführt werden. Die standardmäßige Cron-Tabelle oder Crontab-Konfigurationsdatei des Systems ist /etc/crontab , befindet sich im crontab-Verzeichnis /etc/cron.*/ .

Nur Systemadministratoren können die System-crontab-Datei bearbeiten. Unix-ähnliche Betriebssysteme unterstützen jedoch mehrere Administratoren. Jeder kann eine crontab-Datei erstellen und Befehle schreiben, um Jobs auszuführen, wann immer er will.

Mit Cron-Jobs können Benutzer die Systemwartung automatisieren, den Speicherplatz überwachen und Backups planen. Aufgrund ihrer Beschaffenheit eignen sich Cron-Jobs hervorragend für Computer, die rund um die Uhr arbeiten, wie z. B. Server.

Obwohl Cron-Jobs hauptsächlich von Systemadministratoren verwendet werden, können sie auch für Webentwickler von Vorteil sein.

Als Website-Administrator können Sie beispielsweise einen Cron-Job einrichten, um Ihre Website jeden Tag um Mitternacht automatisch zu sichern, einen anderen, um jeden Montag um Mitternacht nach defekten Links zu suchen, und einen dritten, um Ihren Website-Cache jeden Freitag um 12.00 Uhr zu leeren /P>

Cron hat jedoch, wie jedes andere Programm, Einschränkungen, die Sie vor der Verwendung berücksichtigen sollten:

  • Das kürzeste Intervall zwischen Aufträgen beträgt 60 Sekunden . Mit Cron können Sie einen Job nicht alle 59 Sekunden oder weniger wiederholen.
  • Zentralisiert auf einem Computer. Cron-Jobs können nicht auf mehrere Computer in einem Netzwerk verteilt werden. Wenn also der Computer, auf dem Cron läuft, abstürzt, werden die geplanten Aufgaben nicht ausgeführt und die verpassten Jobs können nur manuell ausgeführt werden.
  • Kein automatischer Wiederholungsmechanismus . Cron ist so konzipiert, dass es zu genau festgelegten Zeiten ausgeführt wird. Wenn eine Aufgabe fehlschlägt, wird sie bis zum nächsten geplanten Zeitpunkt nicht erneut ausgeführt. Dies macht Cron für inkrementelle Aufgaben ungeeignet.

Mit diesen Einschränkungen ist cron eine hervorragende Lösung für einfache Aufgaben, die zu einer bestimmten Zeit mit regelmäßigen Intervallen von mindestens 60 Sekunden ausgeführt werden.

Wenn Sie einen einmaligen Job für später planen möchten, sollten Sie vielleicht eine andere Methode verwenden.

Grundlegende Cron-Job-Operationen

Dieses Tutorial zeigt Ihnen, wie Sie Cron-Jobs planen, indem Sie Befehle in ein Shell-Programm wie Bash unter Linux oder ein anderes Unix-ähnliches Betriebssystem eingeben.

Das VPS-Hosting von Hostinger läuft auf einem Linux-basierten Betriebssystem. Daher wird das Erlernen des Planens von Cron-Jobs Ihre Arbeitseffizienz als VPS-Administrator erheblich steigern. Auf die Befehlszeile für VPS kann über PuTTY SSH zugegriffen werden.

Bevor Sie mit den grundlegenden Operationen von Cron fortfahren, ist es wichtig, die verschiedenen Cron-Job-Konfigurationsdateien zu kennen:

  • Die System-Crontab. Verwenden Sie es, um systemweite, wichtige Jobs zu planen, die nur mit Root-Rechten geändert werden können.
  • Die Crontab des Benutzers. Mit dieser Datei können Benutzer Cron-Jobs erstellen und bearbeiten, die nur auf Benutzerebene gelten.

Wenn Sie die Crontab des Systems bearbeiten möchten, stellen Sie sicher, dass der aktuelle Benutzer Root-Rechte hat.

Im Folgenden sind einige grundlegende Operationen aufgeführt, die Cron ausführen kann:

Um eine Crontab-Datei zu erstellen oder zu bearbeiten , geben Sie Folgendes in die Befehlszeile ein:

crontab -e

Wenn in Ihrem System keine crontab-Dateien gefunden werden, erstellt der Befehl automatisch eine neue. crontab -e ermöglicht das Hinzufügen, Bearbeiten und Löschen von Cron-Jobs.

Sie benötigen einen Texteditor wie vi oder nano um eine Crontab-Datei zu bearbeiten. Bei der Eingabe von crontab -e Zum ersten Mal werden Sie aufgefordert, den Texteditor auszuwählen, mit dem Sie die Datei bearbeiten möchten.

Um eine Liste aktiver geplanter Aufgaben anzuzeigen Geben Sie in Ihrem System den folgenden Befehl ein:

crontab -l

Wenn Ihr System mehrere Benutzer hat, können Sie deren Crontab-Dateilisten anzeigen indem Sie als Superuser den folgenden Befehl eingeben:

crontab -u username -l

Sie können auch ganz einfach geplante Jobs anderer Benutzer bearbeiten indem Sie den folgenden crontab-Befehl eingeben:

sudo su crontab -u username -e

Um sich Root-Rechte zu geben , hängen Sie sudo su an an den Anfang des Befehls. Einige Befehle, darunter auch dieser, können nur von Root-Benutzern ausgeführt werden.

Zum Schluss um alle geplanten Aufgaben zu löschen Geben Sie in Ihrer crontab-Datei den folgenden Befehl ein und starten Sie neu:

crontab -r

Alternativ ist der folgende Befehl derselbe wie crontab -r , außer dass der Benutzer vor dem Entfernen der Crontab mit einer Ja/Nein-Option aufgefordert wird:

crontab -i

Neben crontab kann der Root-Benutzer auch Cron-Jobs zu etc/cron.d hinzufügen Verzeichnis. Es eignet sich am besten zum Ausführen von Skripts für automatische Installationen und Updates.

Denken Sie daran, dass der Benutzer, der Cron-Jobs zu diesem Verzeichnis hinzufügt, Root-Zugriff haben und den Namenskonventionen von Run-Parts entsprechen muss.

Alternativ kann ein Root-Benutzer seine Skripte in die folgenden Verzeichnisse verschieben, um ihre Ausführung zu planen:

  • /etc/cron.hourly/ – Alle Skripte einmal pro Stunde ausführen
  • /etc/cron.daily/ – Einmal täglich ausführen.
  • /etc/cron.weekly/ – Einmal pro Woche laufen.
  • /etc/cron.monthly/ – Einmal im Monat ausführen.

Crontab-Syntax

Um einen Cron-Job zu erstellen, müssen Sie zuerst die Syntax und Formatierung von Cron verstehen. Andernfalls ist die korrekte Einrichtung von Cronjobs möglicherweise nicht möglich.

Die Crontab-Syntax besteht aus fünf Feldern mit den folgenden möglichen Werten:

  • Minute. Die Minute der Stunde, in der der Befehl ausgeführt wird, im Bereich von 0-59.
  • Stunde. Die Stunde, zu der der Befehl ausgeführt wird, von 0 bis 23 in der 24-Stunden-Notation.
  • Tag des Monats . Der Tag des Monats, an dem der Befehl ausgeführt werden soll, im Bereich von 1 bis 31.
  • Monat . Der Monat, in dem der Benutzer den Befehl ausführen möchte, zwischen 1 und 12, also Januar bis Dezember.
  • Wochentag. Der Wochentag, an dem ein Befehl ausgeführt werden soll, im Bereich von 0 bis 6, der Sonntag bis Samstag darstellt. In einigen Systemen steht der Wert 7 für Sonntag.

Lassen Sie keines der Felder leer.

Wenn Sie beispielsweise einen Cron-Job einrichten möchten, um root/backup.sh auszuführen Jeden Freitag um 17:37 Uhr sollte Ihr Cron-Befehl so aussehen:

37 17 * * 5 root/backup.sh

Im obigen Beispiel 37 und 17 repräsentieren 17:37 Uhr. Beide Sternchen für den Tag des Monats und Monat Felder bedeuten alle möglichen Werte. Das bedeutet, dass die Aufgabe unabhängig vom Datum oder Monat wiederholt werden sollte. Zum Schluss 5 steht für Freitag. Auf den Zahlensatz folgt dann der Ort der Aufgabe selbst.

Wenn Sie sich nicht sicher sind, ob Sie die Cron-Syntax manuell schreiben sollen, können Sie kostenlose Tools wie Crontab Generator oder Crontab.guru verwenden, um die genauen Zahlen für die Uhrzeit und das Datum zu generieren, die Sie für Ihren Befehl wünschen.

Um die richtige Zeit für Ihren Cron-Befehl einzustellen, ist die Kenntnis der Cron-Job-Operatoren unerlässlich. Sie ermöglichen es Ihnen festzulegen, welche Werte Sie in die einzelnen Felder eingeben möchten. Sie müssen in allen Crontab-Dateien die richtigen Operatoren verwenden.

  • Sternchen (*) . Verwenden Sie diesen Operator, um alle möglichen Werte in einem Feld anzugeben. Wenn Ihr Cronjob beispielsweise jede Minute ausgeführt werden soll, schreiben Sie ein Sternchen in die Minute Feld.
  • Komma (,) . Verwenden Sie diesen Operator, um mehrere Werte aufzulisten. Schreiben Sie zum Beispiel 1,5 am Wochentag field plant die Ausführung der Aufgabe jeden Montag und Freitag.
  • Bindestrich (-) . Verwenden Sie diesen Operator, um einen Wertebereich zu bestimmen. Wenn Sie beispielsweise von Juni bis September einen Cronjob einrichten möchten, schreiben Sie 6-9 im Monat Feld wird die Arbeit erledigen.
  • Trennzeichen (/) . Verwenden Sie diesen Operator, um einen Wert zu dividieren. Wenn Sie beispielsweise möchten, dass ein Skript alle zwölf Stunden ausgeführt wird, schreiben Sie */12 in der Stunde Feld.
  • Zuletzt (L) . Dieser Operator kann in den Feldern Tag des Monats und Tag der Woche verwendet werden. Schreiben Sie zum Beispiel 3L im Feld Wochentag bedeutet den letzten Mittwoch eines Monats.
  • Wochentag (W) . Verwenden Sie diesen Operator, um den nächstgelegenen Wochentag zu einer bestimmten Uhrzeit zu ermitteln. Wenn beispielsweise der 1. eines Monats ist ein Samstag und schreibt 1W im Feld Tag des Monats führt den Befehl am folgenden Montag aus (dem 3. ).
  • Hash (#). Verwenden Sie diesen Operator, um den Wochentag zu bestimmen, gefolgt von einer Zahl zwischen 1 und 5. Beispiel:1#2 bedeutet der zweite Montag im Monat.
  • Fragezeichen (?) . Verwenden Sie diesen Operator, um „keinen bestimmten Wert“ für die Felder „Tag des Monats“ und „Wochentag“ einzugeben.

Spezielle Zeichenfolgen für Cron-Jobs

Spezielle Zeichenfolgen werden verwendet, um Cron-Jobs in Zeitintervallen zu planen, ohne dass der Benutzer den logischen Satz von Zahlen zur Eingabe herausfinden muss. Um sie zu verwenden, schreiben Sie ein @ gefolgt von einem einfachen Satz.

Hier sind einige nützliche spezielle Zeichenfolgen, die Sie in Befehlen verwenden können:

  • @hourly . Der Job wird einmal pro Stunde ausgeführt.
  • @daily oder @mitternacht . Diese Zeichenfolgen führen die Aufgabe jeden Tag um Mitternacht aus.
  • @weekly . Verwenden Sie dies, um Jobs einmal pro Woche sonntags um Mitternacht auszuführen.
  • @monatlich. Diese spezielle Zeichenfolge führt einmal am ersten Tag jedes Monats einen Befehl aus.
  • @jährlich . Verwenden Sie dies, um einmal im Jahr am 1. Januar um Mitternacht eine Aufgabe auszuführen.
  • @reboot . Mit dieser Zeichenfolge wird der Job nur einmal beim Start ausgeführt.

Wichtig! Denken Sie daran, beim Planen zeitzonenabhängiger Cron-Jobs besonders vorsichtig zu sein.

Cron-Syntaxbeispiele

Da Sie nun wissen, wie die korrekte Cron-Syntax aussieht, gehen wir einige Beispiele durch, damit Sie sie besser verstehen.

Beachten Sie, dass die Cron-Ausgabe automatisch an Ihr lokales E-Mail-Konto gesendet wird. Wenn Sie keine E-Mails mehr erhalten möchten, können Sie >/dev/null 2>&1 hinzufügen zu einem Befehl wie im folgenden Beispiel:

0 5 * * * /root/backup.sh >/dev/null 2>&1

Wenn Sie die Ausgabe an ein bestimmtes E-Mail-Konto senden möchten, fügen Sie MAILTO hinzu gefolgt von einer E-Mail-Adresse. Hier ist ein Beispiel:

MAILTO="[email protected]"
0 3 * * * /root/backup.sh >/dev/null 2>&1

Sehen Sie sich die folgenden Beispielbefehle an, um die Cron-Syntax besser zu verstehen:

Beispiel Erklärung
0 0 * * 0 /root/backup.sh Führen Sie jeden Sonntag um Mitternacht eine Sicherung durch.
0 * * * 1 /root/clearcache.sh Lösche den Cache montags stündlich.
0 6,18 * * * /root/backup.sh Datensicherung zweimal täglich um 6:00 und 18:00 Uhr.
*/10 * * * * /scripts/monitor.sh Führen Sie alle 10 Minuten eine Überwachung durch.
*/15 * * * * /root/backup.sh Führen Sie alle 15 Minuten eine Sicherung durch.
* * 20 7 * /root/backup.sh Führen Sie am 20. Juli jede Minute eine Sicherung durch.
0 22 * ​​* 1-5 /root/clearcache.sh Lösche den Cache jeden Wochentag (Montag bis Freitag) um 22:00 Uhr.
0 0 * * 2 * /root/backup.sh Führen Sie jeden Dienstag um Mitternacht eine Sicherung durch.
* * * 1,2,5 * /scripts/monitor.sh Führen Sie im Januar, Februar und Mai jede Minute eine Überwachung durch.
10-59/10 5 * * * /root/clearcache.sh Löschen Sie den Cache alle 10 Minuten um 5:00 Uhr, beginnend ab 5:10 Uhr.
0 8 1 */3 * /home/user/script.sh Führen Sie die Aufgabe vierteljährlich am ersten Tag des Monats um 8 Uhr morgens aus.
0 * * * * /root/backup.sh Erstelle stündlich ein Backup.
* * * * * /scripts/script.sh; /scripts/scrit2.sh Beziehen Sie mehrere Aufgaben in einen einzigen Cron-Job ein. Nützlich für die Planung mehrerer Aufgaben zur gleichzeitigen Ausführung.
@reboot /root/clearcache.sh Löschen Sie den Cache jedes Mal, wenn Sie das System einschalten.
0 8 1-7 * 1 /scripts/script.sh Führen Sie am ersten Montag jedes Monats um 8:00 Uhr ein Skript aus.
5 4 * * 0 /root/backup.sh Erstellen Sie jeden Sonntag um 4:05 Uhr ein Backup.
15 9 1,20 * * /scripts/monitor.sh Führen Sie die Überwachung am 1. und 20. eines jeden Monats um 21:15 Uhr durch.
@hourly /scripts/monitor.sh Führen Sie jede Stunde eine Überwachung durch.
0 0 1,15 * 3 /scripts/script.sh Jeden Mittwoch zwischen dem 1. und 15. eines jeden Monats um Mitternacht ein Skript ausführen.
15 14 1 * * /root/clearcache.sh Leere den Cache am ersten Tag jedes Monats um 14:15 Uhr.
00 08-17 * * 1-5 bin/check-db-status Überprüfen Sie den Datenbankstatus täglich von Montag bis Freitag stündlich von 20:00 bis 17:00 Uhr.
15 6 1 1 * /root/backup.sh Führen Sie jeden 1. Januar um 6:15 Uhr eine Sicherung durch.
0 0 * * * /scripts/monitor.sh Führen Sie das Überwachungsskript einmal täglich um Mitternacht aus.
0 0 15 * * /root/clearcache.sh Löschen Sie den Cache am 15. eines jeden Monats um Mitternacht.
* * * * 1,5 /scripts/monitor.sh Überwachung jeden Montag und Freitag.

Cron-Berechtigungen

Die folgenden zwei Dateien können erstellt oder bearbeitet werden, um Benutzern die Verwendung der Cron-Datei des Systems zu erlauben oder einzuschränken:

  • /etc/cron.allow – wenn cron.allow existiert, sollte es den Namen eines Benutzers enthalten, um ihm die Verwendung von Cron-Jobs zu erlauben.
  • /etc/cron.deny – wenn cron.allow existiert nicht, aber cron.deny tut, darf der Benutzer, der Cronjobs verwenden möchte, nicht in der Datei aufgeführt sein.

Fazit

Das Einrichten automatisch geplanter Jobs ist eine praktische Lösung, die verhindert, dass Sie wichtige Aufgaben vergessen.

Cron-Jobs sind eine hervorragende Möglichkeit für Systemadministratoren und Webentwickler, sich wiederholende Aufgaben zu verwalten. Alles, was getan werden muss, ist, die richtigen Befehle einzugeben und die richtige Ausführungszeit zu wählen.

Um einen Cron-Job zu planen, verwenden Sie die richtige Syntax in der Befehlszeile. Alternativ können Sie spezielle Zeichenfolgen verwenden, um den Vorgang zu vereinfachen. Denken Sie daran, die richtigen Berechtigungen zuzuweisen, damit nur autorisierte Benutzer auf die Cron-Datei zugreifen können.

Wenn Sie nach einer WordPress-spezifischen Lösung suchen, sehen Sie sich unser WordPress-Cronjob-Tutorial an.

Wir hoffen, dass dieser Artikel Ihnen geholfen hat, die Grundlagen der Verwendung von Cron-Jobs zum Planen von Aufgaben zu verstehen. Wenn Sie Fragen haben, können Sie diese gerne im Kommentarbereich hinterlassen.


Linux
  1. Eine Anleitung zum Linux-Terminal für Anfänger

  2. YAML für Anfänger

  3. Fehlerbehebung bei Cron-Jobs

  4. CentOS / RHEL :Anfängerleitfaden zu cron

  5. Intensive Cron-Jobs oder geplante Aufgaben

Spark-Streaming-Leitfaden für Anfänger

Ein Leitfaden für Anfänger zu LVM

Ein Leitfaden für Anfänger zu Cron-Jobs

Geplante Cron-Jobs

Wie überprüfe ich die Cron-Jobs-Ausgabe bei Hostinger?

So fügen Sie Cron-Jobs in cPanel hinzu