Geplante Aufgaben einrichten

LinuxBeginner
Jetzt üben

Einführung

In diesem Lab erfahren Sie, wie Sie geplante Aufgaben auf Linux einrichten. Sie werden zwei leistungsstarke Tools kennenlernen: den watch-Befehl zum wiederholten Ausführen von Befehlen in kurzen Intervallen und das crontab-Hilfsprogramm zum Planen von Aufgaben, die zu bestimmten Zeiten ausgeführt werden sollen. Diese Fähigkeiten sind für Systemadministratoren und alle, die wiederkehrende Aufgaben auf einem Linux-System automatisieren müssen, unerlässlich.

Den watch-Befehl verwenden

Der watch-Befehl ermöglicht es Ihnen, einen Befehl wiederholt auszuführen und dessen Ausgabe in Echtzeit anzuzeigen. Dies ist nützlich, um Änderungen zu überwachen oder einen Befehl in regelmäßigen kurzen Intervallen auszuführen.

  1. Öffnen Sie Ihr Terminal. Sie sollten sich im Verzeichnis /home/labex/project befinden. Wenn Sie sich nicht sicher sind, können Sie immer mit dem pwd-Befehl Ihr aktuelles Verzeichnis überprüfen.

  2. Wir verwenden watch, um das aktuelle Datum und die Uhrzeit alle 5 Sekunden anzuzeigen. Geben Sie den folgenden Befehl ein:

    watch -n 5 date
    

    Hier ist, was dieser Befehl macht:

    • watch ist der Befehl, den wir verwenden, um einen anderen Befehl wiederholt auszuführen.
    • -n 5 ist eine Option, die watch anweist, 5 Sekunden zwischen jeder Ausführung zu warten. Wenn Sie diese Option weglassen, verwendet watch ein Standardintervall von 2 Sekunden.
    • date ist der Befehl, den watch wiederholt ausführt. Er zeigt das aktuelle Datum und die Uhrzeit an.
  3. Nach dem Eingeben des Befehls sollten Sie eine Vollbildanzeige sehen, die alle 5 Sekunden aktualisiert wird. Sie wird ähnlich wie folgt aussehen:

Beispiel für die Ausgabe des watch-Befehls

Die oberste Zeile zeigt den ausgeführten Befehl und wie oft er aktualisiert wird. Der Rest des Bildschirms zeigt die Ausgabe des date-Befehls.

  1. Um den watch-Befehl zu beenden, drücken Sie Strg+C. Diese Tastenkombination wird in Linux üblicherweise verwendet, um einen laufenden Befehl zu beenden.

    Wenn Sie den watch-Befehl nicht beenden, wird er unendlich weiterlaufen, was es Ihnen möglicherweise verhindert, neue Befehle in Ihrem Terminal einzugeben.

Crontab installieren

Bevor wir Crontab verwenden können, um Aufgaben zu planen, müssen wir sicherstellen, dass es auf unserem System installiert ist. Die meisten Linux-Distributionen kommen mit Crontab vorinstalliert, aber es ist eine gute Praxis, es zu überprüfen und bei Bedarf zu installieren.

  1. Zunächst überprüfen wir, ob Crontab bereits installiert ist. Wir können dies tun, indem wir versuchen, den Crontab-Befehl auszuführen:

    crontab -l
    

    Wenn Crontab installiert ist, sehen Sie entweder eine Liste Ihrer aktuellen Cron-Aufgaben oder eine Meldung, die besagt "no crontab for labex".

  2. Wenn Sie eine Fehlermeldung sehen, die besagt, dass der Befehl nicht gefunden wurde, müssen wir Crontab installieren. Auf Ubuntu- oder Debian-basierten Systemen können wir es mit den folgenden Befehlen installieren:

    sudo apt update
    sudo apt install cron
    

    Sie werden aufgefordert, Ihr Passwort einzugeben. Geben Sie es ein (beachten Sie, dass Sie aus Sicherheitsgründen keine Zeichen sehen werden, während Sie tippen) und drücken Sie die Eingabetaste.

  3. Nach der Installation starten Sie den Cron-Dienst:

    sudo service cron start
    

    Dieser Befehl startet den Cron-Dienst sofort.

  4. Jetzt überprüfen Sie, ob Cron installiert und ausgeführt wird:

    sudo service cron status
    

    Sie sollten eine Ausgabe sehen, die darauf hinweist, dass der Cron-Dienst läuft.

Einführung in Crontab

Jetzt, da wir Crontab installiert haben, schauen wir uns an, wie man es verwendet. Crontab wird verwendet, um Aufgaben zu bestimmten Zeiten zu planen, auch wenn Sie nicht angemeldet sind.

  1. Zunächst schauen wir uns Ihre aktuellen Crontab-Einträge an (falls vorhanden). Verwenden Sie den folgenden Befehl:

    crontab -l
    

    Die Option -l steht für "list" (auflisten). Dieser Befehl zeigt alle geplanten Aufgaben in Ihrem Crontab an.

    Wenn Sie noch keine Cron-Aufgaben eingerichtet haben, sehen Sie eine Meldung, die besagt "no crontab for labex". Dies ist für einen neuen Benutzer normal.

  2. Jetzt öffnen wir das Crontab zur Bearbeitung. Verwenden Sie diesen Befehl:

    crontab -e
    

    Die Option -e steht für "edit" (bearbeiten). Dieser Befehl öffnet Ihre Crontab-Datei in einem Texteditor.

    Wenn Sie Crontab zum ersten Mal verwenden, werden Sie möglicherweise aufgefordert, einen Editor auszuwählen. Sie sehen eine Liste von Zahlen, die verschiedenen Editoren entsprechen. Für Anfänger ist nano (normalerweise Option 1) eine gute Wahl, weil es einfacher zu bedienen ist. Geben Sie die Nummer für nano ein und drücken Sie die Eingabetaste.

Auswahl eines Editors

Wenn Sie nicht aufgefordert werden, einen Editor auszuwählen, machen Sie sich keine Sorgen. Das bedeutet, dass bereits ein Standardeditor für Sie eingerichtet wurde.

  1. Sobald der Editor geöffnet ist, sehen Sie eine leere Datei (oder alle vorhandenen Cron-Aufgaben, falls Sie welche hatten). Fügen Sie noch nichts hinzu; wir werden das in einem späteren Schritt tun. Machen Sie sich zunächst mit dem Editor vertraut.

    Wenn Sie nano verwenden, sehen Sie einige Hilfsbefehle am unteren Rand des Bildschirms. Das Symbol ^ steht für die Strg-Taste. Also bedeutet ^X "Strg+X", was zum Beenden von nano verwendet wird.

  2. Beenden Sie den Editor ohne Änderungen vorzunehmen. In nano können Sie dies tun, indem Sie Strg+X drücken. Wenn Sie gefragt werden, ob Sie die Änderungen speichern möchten, drücken Sie 'N' für Nein.

Grundlagen der Crontab-Syntax

Bevor wir einen Cron-Job hinzufügen, ist es wichtig, die Syntax zu verstehen. Crontab verwendet ein spezielles Format, um zu bestimmen, wann eine Aufgabe ausgeführt werden soll.

  1. Das grundlegende Format eines Cron-Jobs lautet:

    * * * * * command_to_execute
    

    Jedes Sternchen repräsentiert eine bestimmte Zeiteinheit, von links nach rechts:

    1. Minute (0-59)
    2. Stunde (0-23)
    3. Tag des Monats (1-31)
    4. Monat (1-12)
    5. Wochentag (0-7, wobei sowohl 0 als auch 7 Sonntag repräsentieren)
  2. Hier sind einige Beispiele, um Ihnen das Verständnis zu erleichtern:

    • 30 2 * * * bedeutet "Um 2:30 Uhr morgens, jeden Tag"
    • 0 9 * * 1-5 bedeutet "Um 9:00 Uhr morgens, Montag bis Freitag"
    • */15 * * * * bedeutet "Alle 15 Minuten"
  3. Sie können die folgenden Sonderzeichen verwenden:

    • *: beliebiger Wert
    • ,: Trennzeichen für Wertelisten
    • -: Wertebereich
    • /: Schrittwerte
  4. Lassen Sie uns ein komplexeres Beispiel zerlegen: 15,45 9-17 * * 1-5 /path/to/script.sh Dies bedeutet: "Führen Sie /path/to/script.sh um 15 und 45 Minuten nach jeder Stunde von 9 Uhr morgens bis 5 Uhr Nachmittags, Montag bis Freitag aus"

Das Verständnis dieser Syntax ist der Schlüssel zur Erstellung effektiver Cron-Jobs. Nehmen Sie sich etwas Zeit, um darüber nachzudenken, wie Sie verschiedene Aufgaben mit diesem Format planen könnten.

Einen Cron-Job hinzufügen

Jetzt, da wir die Syntax verstehen, fügen wir einen einfachen Cron-Job hinzu, der jede Minute das aktuelle Datum in eine Datei schreibt.

  1. Öffnen Sie Ihr Crontab zur Bearbeitung:

    crontab -e
    
  2. Sobald der Editor geöffnet ist, fügen Sie die folgende Zeile zu Ihrem Crontab hinzu:

    * * * * * date >> /home/labex/project/date_log.txt
    

Screenshot des Cron-Job-Editors

Lassen Sie uns dies zerlegen:

  • Die fünf Sternchen * * * * * bedeuten "jede Minute jeder Stunde jeden Tages jedes Monats und jeden Wochentags".
  • date ist der Befehl, den wir ausführen.
  • >> wird verwendet, um die Ausgabe an eine Datei anzuhängen (anstatt sie zu überschreiben).
  • /home/labex/project/date_log.txt ist die Datei, in der wir die Ausgabe speichern.
  1. Speichern Sie die Änderungen und beenden Sie den Editor. Wenn Sie nano verwenden:

    • Drücken Sie Strg+X, um zu beenden.
    • Drücken Sie Y, um zu bestätigen, dass Sie die Änderungen speichern möchten.
    • Drücken Sie die Eingabetaste, um den Dateinamen zu bestätigen.
  2. Nach dem Beenden sollten Sie eine Meldung sehen, die besagt "crontab: installing new crontab". Dies bestätigt, dass Ihre Änderungen gespeichert wurden.

Überwachen Sie Ihren Cron-Job

Jetzt, da wir einen Cron-Job eingerichtet haben, überprüfen wir, ob er korrekt funktioniert.

  1. Zunächst müssen wir mindestens eine Minute warten, nachdem wir den Cron-Job hinzugefügt haben. Dies liegt daran, dass Cron-Jobs auf der vollen Minute ausgeführt werden, sodass es bis zu einer Minute dauern kann, bis Ihr Job zum ersten Mal ausgeführt wird.

  2. Nach dem Warten verwenden Sie den cat-Befehl, um den Inhalt der Protokolldatei anzuzeigen:

    cat /home/labex/project/date_log.txt
    

    Der cat-Befehl zeigt den Inhalt einer Datei direkt im Terminal an.

  3. Sie sollten mindestens eine Zeile mit einem Datum und einer Uhrzeit sehen. Es wird in etwa so aussehen:

    Sat Aug  5 10:15:01 UTC 2023
    

    Wenn Sie nichts sehen, warten Sie noch eine Minute und versuchen Sie es erneut. Manchmal kann es einen Moment dauern, bis der Cron-Job beginnt, ausgeführt zu werden.

  4. Um den Cron-Job in Aktion zu sehen, können Sie den watch-Befehl verwenden, den wir zuvor gelernt haben, um die Datei in Echtzeit zu überwachen:

    watch -n 60 cat /home/labex/project/date_log.txt
    

    Dies wird alle 60 Sekunden aktualisiert und zeigt Ihnen die neuen Einträge, sobald sie hinzugefügt werden.

  5. Lassen Sie dies einige Minuten laufen. Sie sollten jede Minute eine neue Zeile hinzufügen sehen.

  6. Wenn Sie mit der Beobachtung fertig sind, drücken Sie Strg+C, um den watch-Befehl zu beenden.

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Lab "Set Up Scheduled Tasks" (Planen von Aufgaben einrichten) erfolgreich abgeschlossen. Sie haben gelernt, wie Sie:

  1. Den watch-Befehl verwenden, um Befehle in kurzen Intervallen wiederholt auszuführen.
  2. Crontab auf Ihrem System installieren und einrichten.
  3. Ihr Crontab mit crontab -l und crontab -e anzeigen und bearbeiten.
  4. Die Crontab-Syntax für die Planung von Aufgaben verstehen.
  5. Einen einfachen Cron-Job erstellen, der jede Minute ausgeführt wird.
  6. Die Ausgabe Ihres Cron-Jobs überwachen.

Diese Fähigkeiten sind grundlegend für die Automatisierung von Aufgaben und die Überwachung von Systemen in Linux-Umgebungen. Wenn Sie Ihre Linux-Reise fortsetzen, werden Sie viele weitere Anwendungen für geplante Aufgaben in der Systemadministration und Automatisierung finden.

Denken Sie daran, dass Sie, obwohl wir ein einfaches Beispiel für die Protokollierung des Datums verwendet haben, Cron-Jobs für komplexere Aufgaben wie das Sichern von Daten, das Aktualisieren von Software oder das Ausführen von Systemwartungsskripten verwenden können. Seien Sie immer vorsichtig, wenn Sie Cron-Jobs einrichten, insbesondere wenn sie systemkritische Operationen betreffen.