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.
Öffnen Sie Ihr Terminal. Sie sollten sich im Verzeichnis
/home/labex/projectbefinden. Wenn Sie sich nicht sicher sind, können Sie immer mit dempwd-Befehl Ihr aktuelles Verzeichnis überprüfen.Wir verwenden
watch, um das aktuelle Datum und die Uhrzeit alle 5 Sekunden anzuzeigen. Geben Sie den folgenden Befehl ein:watch -n 5 dateHier ist, was dieser Befehl macht:
watchist der Befehl, den wir verwenden, um einen anderen Befehl wiederholt auszuführen.-n 5ist eine Option, diewatchanweist, 5 Sekunden zwischen jeder Ausführung zu warten. Wenn Sie diese Option weglassen, verwendetwatchein Standardintervall von 2 Sekunden.dateist der Befehl, denwatchwiederholt ausführt. Er zeigt das aktuelle Datum und die Uhrzeit an.
Nach dem Eingeben des Befehls sollten Sie eine Vollbildanzeige sehen, die alle 5 Sekunden aktualisiert wird. Sie wird ähnlich wie folgt aussehen:

Die oberste Zeile zeigt den ausgeführten Befehl und wie oft er aktualisiert wird. Der Rest des Bildschirms zeigt die Ausgabe des date-Befehls.
Um den
watch-Befehl zu beenden, drücken SieStrg+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.
Zunächst überprüfen wir, ob Crontab bereits installiert ist. Wir können dies tun, indem wir versuchen, den Crontab-Befehl auszuführen:
crontab -lWenn Crontab installiert ist, sehen Sie entweder eine Liste Ihrer aktuellen Cron-Aufgaben oder eine Meldung, die besagt "no crontab for labex".
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 cronSie 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.
Nach der Installation starten Sie den Cron-Dienst:
sudo service cron startDieser Befehl startet den Cron-Dienst sofort.
Jetzt überprüfen Sie, ob Cron installiert und ausgeführt wird:
sudo service cron statusSie 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.
Zunächst schauen wir uns Ihre aktuellen Crontab-Einträge an (falls vorhanden). Verwenden Sie den folgenden Befehl:
crontab -lDie Option
-lsteht 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.
Jetzt öffnen wir das Crontab zur Bearbeitung. Verwenden Sie diesen Befehl:
crontab -eDie Option
-esteht 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.

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.
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.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.
Das grundlegende Format eines Cron-Jobs lautet:
* * * * * command_to_executeJedes Sternchen repräsentiert eine bestimmte Zeiteinheit, von links nach rechts:
- Minute (0-59)
- Stunde (0-23)
- Tag des Monats (1-31)
- Monat (1-12)
- Wochentag (0-7, wobei sowohl 0 als auch 7 Sonntag repräsentieren)
Hier sind einige Beispiele, um Ihnen das Verständnis zu erleichtern:
30 2 * * *bedeutet "Um 2:30 Uhr morgens, jeden Tag"0 9 * * 1-5bedeutet "Um 9:00 Uhr morgens, Montag bis Freitag"*/15 * * * *bedeutet "Alle 15 Minuten"
Sie können die folgenden Sonderzeichen verwenden:
*: beliebiger Wert,: Trennzeichen für Wertelisten-: Wertebereich/: Schrittwerte
Lassen Sie uns ein komplexeres Beispiel zerlegen:
15,45 9-17 * * 1-5 /path/to/script.shDies 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.
Öffnen Sie Ihr Crontab zur Bearbeitung:
crontab -eSobald der Editor geöffnet ist, fügen Sie die folgende Zeile zu Ihrem Crontab hinzu:
* * * * * date >> /home/labex/project/date_log.txt

Lassen Sie uns dies zerlegen:
- Die fünf Sternchen
* * * * *bedeuten "jede Minute jeder Stunde jeden Tages jedes Monats und jeden Wochentags". dateist 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.txtist die Datei, in der wir die Ausgabe speichern.
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.
- Drücken Sie
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.
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.
Nach dem Warten verwenden Sie den
cat-Befehl, um den Inhalt der Protokolldatei anzuzeigen:cat /home/labex/project/date_log.txtDer
cat-Befehl zeigt den Inhalt einer Datei direkt im Terminal an.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 2023Wenn 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.
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.txtDies wird alle 60 Sekunden aktualisiert und zeigt Ihnen die neuen Einträge, sobald sie hinzugefügt werden.
Lassen Sie dies einige Minuten laufen. Sie sollten jede Minute eine neue Zeile hinzufügen sehen.
Wenn Sie mit der Beobachtung fertig sind, drücken Sie
Strg+C, um denwatch-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:
- Den
watch-Befehl verwenden, um Befehle in kurzen Intervallen wiederholt auszuführen. - Crontab auf Ihrem System installieren und einrichten.
- Ihr Crontab mit
crontab -lundcrontab -eanzeigen und bearbeiten. - Die Crontab-Syntax für die Planung von Aufgaben verstehen.
- Einen einfachen Cron-Job erstellen, der jede Minute ausgeführt wird.
- 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.



