crontab

Führen Sie jede Minute einen Cron-Job aus

Führen Sie jede Minute einen Cron-Job aus
Wenn Sie unter Linux ein Programm oder Skript im Hintergrund ausführen möchten, ist der Cron-Job sehr wichtig. Mit Hilfe von Cron-Jobs können Sie nach einem bestimmten Zeitintervall ein Programm oder Skript im Hintergrund ausführen.

Werfen wir einen Blick auf einige der realen Beispiele für Cron-Jobs.

Es gibt viele andere Verwendungen von Cron-Jobs unter Linux.

In diesem Artikel zeige ich Ihnen, wie Sie unter Linux jede Minute Cron-Jobs ausführen können. Ich werde Debian 9 Stretch für die Demonstration verwenden. Aber Sie können jede moderne Linux-Distribution Ihrer Wahl verwenden. Lass uns anfangen.

Grundlagen von Crontab:

Unter Linux müssen Sie nicht sein Wurzel um Cronjobs auszuführen. Sie können Cron-Jobs als jeder Benutzer ausführen. Jeder Benutzer unter Linux kann a crontab Datei, um ihre eigenen Cron-Jobs auszuführen.

Standardmäßig hat ein Benutzer kein a crontab Datei unter Linux. Sie können eine erstellen crontab Datei mit folgendem Befehl:

$crontab -e

Wenn Sie diesen Befehl zum ersten Mal ausführen, sollten Sie aufgefordert werden, einen Texteditor aus der Liste auszuwählen. ich werde auswählen nano, die Standardeinstellung. Sie können wählen, was Ihnen gefällt. Wenn Sie fertig sind, drücken Sie .

Das crontab Datei sollte erstellt werden (falls noch nicht vorhanden) und mit Ihrem bevorzugten Texteditor geöffnet werden.  Jetzt können Sie Ihre eigenen Cron-Jobs am Ende dieser Datei hinzufügen und wenn Sie zufrieden sind, speichern Sie sie einfach und beenden Sie den Texteditor.

Syntax zum Ausführen eines Befehls jede Minute:

Die Syntax von crontab Datei lautet wie folgt:

Minute Stunde dayOfMonth Monat dayOfWeek commandToRun

Hier,

Laufen BefehlToRun Befehl jede Minute, du solltest ihn in die schreiben crontab Datei wie folgt:

* * * * * commandToRun

Jede Minute einen Crob-Job ausführen:

Nachdem wir nun die Theorien kennen, fügen wir ein einfaches Skript hinzu Timer.Sch zum crontab Datei und sehen Sie, wie Sie sie verwalten.

In dem Timer.Sch Skript, ich habe nur die folgenden Codezeilen. Alles, was es tut, ist eine neue Datei zu erstellen /home/shovon/bin/timer.Log (falls noch nicht vorhanden) und hängt die Ausgabe des Datumsbefehls daran an.

Jetzt fügen wir das Skript zu unserem hinzu crontab und lassen Sie es jede Minute mit der folgenden Zeile laufen:

* * * * * /home/shovon/bin/timer.Sch

Sobald Sie das speichern crontab Datei und beenden Sie den Texteditor, das neue crontab Datei sollte installiert werden.

Nach einer Minute ist eine neue Datei file Timer.Log wird im gewünschten Verzeichnis erstellt, wie Sie im markierten Abschnitt des Screenshots unten sehen können.

Von dem Timer.Log log-Datei ist es offensichtlich, dass das Skript Timer.Sch läuft jede Minute.

Abfangen von Fehlern aus den Cron-Jobs:

Um Fehler von einem Cron-Job abzufangen, können Sie die Fehler an a Error.Log Datei und normale Ausgaben an Zugriff.Log Datei zum Beispiel. Natürlich können Sie die Dateien beliebig benennen.

Um dies zu demonstrieren, habe ich mein Skript modifiziert Timer.Sch ein kleines Bisschen. Jetzt werden die Fehler gesendet an Error.Log Datei in der /home/shovon/bin Verzeichnis und die Ausgaben werden gesendet an Zugriff.Log in dem /home/shovon/bin Verzeichnis.

Zuerst die /tmp/i_must_be_here Datei existiert nicht, daher erhalte ich den Fehler in der Error.Log Datei, wie Sie sehen können.

Das Zugriff.Log Datei ist im Moment leer.

Jetzt erstelle ich die Datei /tmp/i_must_be_here

Und wie Sie sehen können, ist die Ausgabe im Zugriff.Log Datei jetzt.

Wenn Sie möchten, können Sie die Ausgabe und die Fehler in derselben Datei wie folgt umleiten:

Wie Sie sehen, werden die Ausgänge STDIN und STDERR an die aus.Log Datei.

Stellen Sie sicher, dass der letzte Job ausgeführt wurde, bevor Sie den Job erneut ausführen:

Damit dies funktioniert, können Sie direkt nach dem Start des Jobs eine temporäre Datei erstellen und diese kurz vor dem Abschluss entfernen. Dann können Sie vor dem Start des Jobs prüfen, ob die temporäre Datei vorhanden ist. Wenn dies der Fall ist, können Sie den Job beenden und den Job nur ausführen, wenn die temporäre Datei nicht verfügbar ist.

Dieses einfache Skript macht genau das.

Wie Sie sehen können, ist die Timer.pid Datei wird erstellt.

Lesen der Zugriff.Log Datei beweist, dass der Cron-Job nicht ausgeführt wird, bevor der vorherige Cron-Job beendet ist. Wie Sie sehen, lief es um 01:32:01 und das nächste Mal hätte es um 01:33:01 laufen sollen, aber es ist nicht gelaufen. Stattdessen lief es um 01:35:01, etwa 3 Minuten später.

Organisieren von Cron-Job-Ausgaben für einfaches Debugging:

Sie können die Ausgaben schön formatieren, um das Debuggen Ihres Cron-Jobs zu erleichtern.

Ein Beispiel dafür, wie es gemacht werden kann, finden Sie im folgenden Skript.

Wie Sie sehen können, werden die Ausgaben, Fehler und Erfolgsmeldungen schön in der Protokolldatei gedruckt.

Mit Cron-Jobs und Shell-Skripten können Sie erstaunliche Dinge tun. Einige der Ideen habe ich hier demonstriert. Aber der Himmel ist deine Grenze. Fühlen Sie sich frei, mit Ihren Ideen zu experimentieren. Danke, dass du diesen Artikel gelesen hast.

SuperTuxKart für Linux
SuperTuxKart ist ein großartiger Titel, der entwickelt wurde, um Ihnen das Mario Kart-Erlebnis kostenlos auf Ihrem Linux-System zu bieten. Es ist ziem...
Battle for Wesnoth-Tutorial
The Battle for Wesnoth ist eines der beliebtesten Open-Source-Strategiespiele, die Sie derzeit spielen können. Dieses Spiel befindet sich nicht nur se...
0 A.D. Lernprogramm
Von den vielen Strategiespielen da draußen, 0 A.D. schafft es, sich trotz Open Source als umfassender Titel und sehr tiefgehendes, taktisches Spiel ab...