Führen Sie jede Minute einen Cron -Job durch

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

Schauen wir uns einige der echten Beispiele von Cron -Jobs an.

  • Sagen wir, Sie besitzen eine Website und möchten alle Benutzer Ihrer Website jeden Tag eine E -Mail senden. Alles, was Sie tun müssen, ist, schreiben Sie ein E -Mail -Senden -Skript und richten Sie einen Cron -Job ein, um dieses Skript jeden Tag auszuführen.
  • Nehmen wir an, Sie besitzen eine Werbeagentur und möchten alle Werbetreibenden daran erinnern. Alles, was Sie tun müssen, ist ein Skript zu schreiben, das den Restbetrag aller Werbetreibenden überprüft. Wenn es unter 5 $ ist, wird eine Benachrichtigung an die Handynummer oder E -Mail des Werbetreibenden gesendet. Richten Sie dann einen Cron -Job ein, um das Skript alle 5 bis 10 Minuten oder jede Stunde auszuführen.

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

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

Grundlagen von Crontab:

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

Standardmäßig hat ein Benutzer keine Crontab Datei unter Linux. Sie können a erstellen Crontab Datei mit dem folgenden 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, der Standard. Sie können den auswählen, den Sie mögen. Sobald Sie fertig sind, drücken Sie .

Der Crontab Die Datei sollte erstellt werden (falls bereits verfügbar) und mit Ihrem bevorzugten Texteditor geöffnet werden. Jetzt können Sie am Ende dieser Datei Ihre eigenen Cron -Jobs hinzufügen und wenn Sie zufrieden sind, speichern Sie sie einfach und beenden Sie aus dem Texteditor heraus.

Syntax des Ausführens eines Befehls jede Minute:

Die Syntax von Crontab Die Datei ist wie folgt:

Minute Hour Dayofmonth Month Dayofweek Commandtorun

Hier,

  • Minute kann sein 0 Zu 59.
  • Stunde kann auch sein 0 Zu 59.
  • Monatstag kann sein 1 Zu 31.
  • Monat kann sein 1 Zu 12.
  • Wochentag kann sein 0 Zu 7. 0 Und 7 bedeutet Sonntag, 1 bedeutet Montag, 2 bedeutet Dienstag und so weiter.

A KommandoTorun Befehlen Sie jede Minute, Sie sollten es in die schreiben Crontab Datei wie folgt:

* * * * * commandTorun

Jede Minute einen Crob -Job durchführen:

Jetzt, da wir die Theorien kennen, fügen wir ein einfaches Skript hinzu Timer.Sch zum Crontab Datei und sehen, wie man es verwaltet.

Im Timer.Sch Skript, ich habe nur die folgenden Codeszeilen. Alles, was es tut, ist eine neue Datei zu erstellen /Home/Shovon/Bin/Timer.Protokoll (Wenn es nicht noch nicht vorhanden ist) und findet die Ausgabe des Datumsbefehls an.

Fügen wir jetzt das Skript zu unserem hinzu Crontab Und lassen Sie es jede Minute mit der folgenden Zeile laufen:

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

Sobald Sie die retten Crontab Datei und beenden Sie aus dem Texteditor, dem neuen Crontab Die Datei sollte installiert werden.

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

Von dem Timer.Protokoll Protokolldatei, es ist offensichtlich, dass das Skript Timer.Sch läuft jede Minute.

Fehler von den Cron -Jobs fangen:

Um Fehler von einem Cron -Job zu erfassen, können Sie die Fehler an a senden Fehler.Protokoll Datei und normale Ausgänge zu Zugang.Protokoll Datei zum Beispiel. Natürlich können Sie die Dateien alles nennen, was Sie wollen.

Um dies zu demonstrieren, habe ich mein Skript geändert Timer.Sch ein bißchen. Jetzt werden die Fehler an gesendet Fehler.Protokoll Datei in der /home/shovon/bin Verzeichnis und die Ausgänge werden an gesendet an Zugang.Protokoll im /home/shovon/bin Verzeichnis.

Zuerst die /tmp/i_must_be_here Datei gibt es nicht, daher erhalte ich den Fehler in der Fehler.Protokoll Datei wie Sie sehen können.

Der Zugang.Protokoll Die Datei ist momentan leer.

Jetzt werde ich die Datei erstellen /tmp/i_must_be_here

Und wie Sie sehen können, ist die Ausgabe in der Zugang.Protokoll Datei jetzt.

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

Wie Sie sehen können, werden Stdin- und Stderr -Ausgänge an die gesendet aus.Protokoll Datei.

Stellen Sie sicher, dass der letzte Job beendet wurde, bevor der Job erneut ausgeführt wird:

Damit dies funktioniert. Anschließend können Sie überprüfen, ob die temporäre Datei vorhanden ist, bevor Sie mit dem Job beginnen. Wenn dies der Fall ist, können Sie den Job verlassen 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, die Timer.PID Datei wird erstellt.

Lesen der Zugang.Protokoll Die Datei beweist, dass der Cron -Job nicht vor dem vorherigen Cron -Job ausgeführt wird. Wie Sie sehen können, lief es um 01:32:01 und hätte das nächste Mal um 01:33:01 Uhr gelaufen sein, aber es nicht nicht. Stattdessen lief es um 01:35:01, ungefähr 3 Minuten später.

Organisieren von Cron -Jobausgaben für einfaches Debuggen:

Sie können die Ausgänge gut formatieren, um Ihren Cron -Job zu erleichtern, um zu debuggen.

Ein Beispiel dafür, wie es getan werden kann, ist im folgenden Skript angegeben.

Wie Sie sehen können, sind die Ausgänge, Fehler und Erfolgsnachrichten in der Protokolldatei gut gedruckt.

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