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

Wie man Cron alle 5 Minuten, Sekunden, Stunden, Tage, Monate ausführt

Frage: Wie führe ich ein bestimmtes Shell-Skript in bestimmten Intervallen in Linux mit einem Cron-Job aus? Geben Sie Beispiele mit unterschiedlichen Zeiträumen.

Antwort: Crontab kann verwendet werden, um einen Job zu planen, der auf bestimmten internen ausgeführt wird. Das Beispiel hier zeigt, wie ein backup.sh-Shell-Skript mit unterschiedlichen Intervallen ausgeführt wird.

Vergessen Sie außerdem nicht, unseren vorherigen crontab-Artikel zu lesen, der 15 praktische Beispiele enthält und auch etwas über @monthly erklärt. @daily, .. Tags, die Sie in Ihrer Crontab verwenden können.

1. Alle 5 Minuten einen Cronjob ausführen

Das erste Feld ist für Minuten. Wenn Sie in diesem Feld * angeben, wird es jede Minute ausgeführt. Wenn Sie im 1. Feld */5 angeben, wird es wie unten gezeigt alle 5 Minuten ausgeführt.

*/5 * * * * /home/ramesh/backup.sh

Hinweis: Verwenden Sie auf die gleiche Weise */10 für alle 10 Minuten, */15 für alle 15 Minuten, */30 für alle 30 Minuten usw.

2. Alle 5 Stunden einen Cronjob ausführen

Das zweite Feld ist für Stunden. Wenn Sie in diesem Feld * angeben, wird es stündlich ausgeführt. Wenn Sie */5 im 2. Feld angeben, wird es wie unten gezeigt alle 5 Stunden ausgeführt.

0 */5 * * * /home/ramesh/backup.sh

Hinweis: Verwenden Sie auf die gleiche Weise */2 für alle 2 Stunden, */3 für alle 3 Stunden, */4 für alle 4 Stunden usw.

3. Alle 5 Sekunden einen Job ausführen

Cron-Job kann nicht verwendet werden, um einen Job im Sekundenintervall zu planen. d.h. Sie können einen Cron-Job nicht so planen, dass er alle 5 Sekunden ausgeführt wird. Die Alternative besteht darin, ein Shell-Skript zu schreiben, das den Befehl „sleep 5“ darin verwendet.

Erstellen Sie ein Shell-Skript every-5-seconds.sh mit der Bash-While-Schleife wie unten gezeigt.

$ cat every-5-seconds.sh
#!/bin/bash
while true
do
 /home/ramesh/backup.sh
 sleep 5
done

Führen Sie nun dieses Shell-Skript im Hintergrund mit nohup aus, wie unten gezeigt. Dadurch wird das Skript weiter ausgeführt, auch nachdem Sie sich von Ihrer Sitzung abgemeldet haben. Dadurch wird Ihr Shell-Skript backup.sh alle 5 Sekunden ausgeführt.

$ nohup ./every-5-seconds.sh &

4. Jeden 5. Wochentag einen Job ausführen

In diesem Beispiel geht es nicht darum, „alle 5 Tage“ zu planen. Dies gilt jedoch für die Planung „jeden 5. Wochentag“.

Das 5. Feld ist DOW (Wochentag). Wenn Sie in diesem Feld * angeben, wird es jeden Tag ausgeführt. Geben Sie für die Ausführung jeden Freitag entweder 5 von Fr in dieses Feld ein.

Das folgende Beispiel führt die backup.sh jeden Freitag um Mitternacht aus.

0 0 * * 5 /home/ramesh/backup.sh
(or)
0 0 * * Fri /home/ramesh/backup.sh

Sie können entweder die Benutzernummer oder das entsprechende dreibuchstabige Akronym für den Wochentag verwenden, wie unten gezeigt.

  • 0=Sonntag
  • 1=Mo
  • 2=Di
  • 3=Mi
  • 4=Do
  • 5=Fr
  • 6=Sa

Hinweis: Gewöhnen Sie sich an, Fr statt 5 zu verwenden. Bitte beachten Sie, dass die Zahl mit 0 beginnt (nicht mit 1) und 0 für So (nicht Mo) steht.

5. Führen Sie alle 5 Monate einen Job aus

Es gibt keine direkte Möglichkeit, „alle 5 Monate“ zu sagen, stattdessen müssen Sie angeben, in welchen bestimmten Monaten Sie den Job ausführen möchten. Wahrscheinlich möchten Sie den Job im 5. Monat (Mai) und im 10. Monat (Oktober) ausführen.

Das vierte Feld ist für Monate. Wenn Sie in diesem Feld * angeben, wird es jeden Monat ausgeführt. Um für den bestimmten Monat zu laufen, müssen Sie die Nummer angeben, die dem Monat entspricht. Um den Job beispielsweise im Mai und Oktober auszuführen, sollten Sie 5,10 angeben (oder) Sie können einfach das aus 3 Buchstaben bestehende Akronym des Monats verwenden und Mai, Okt. angeben.

Das dritte Feld ist für DOM (Day of the Month). Wenn Sie in diesem Feld * angeben, wird es jeden Tag des Monats ausgeführt. Wenn Sie in diesem Monat 1 angeben, wird es am 1. des Monats ausgeführt.

Im folgenden Beispiel wird backup.sh zweimal im Jahr ausgeführt. d.h. 1. Mai um Mitternacht und 1. Oktober um Mitternacht.

0 0 1 5,10 * /home/ramesh/backup.sh
(or)
0 0 1 May,Oct * /home/ramesh/backup.sh

Hinweis: Machen Sie nicht den Fehler, im 4. Feld 5-10 anzugeben, also vom 5. Monat bis zum 10. Monat. Wenn Sie nur den 5. und 10. Monat wünschen, sollten Sie Komma verwenden.


Linux
  1. Wie richte ich einen Cron-Job ein, um jede Stunde eine ausführbare Datei auszuführen?

  2. Cronjob alle 1 Stunde und 10 Minuten ausführen

  3. Wie richte ich einen CRON-Job so ein, dass er alle 10 Sekunden unter Linux ausgeführt wird?

  4. crontab wird zwischen bestimmten Stunden alle 15 Minuten ausgeführt

  5. Cron alle 2 Stunden ausführen

Cron-Jobs alle 5, 10 oder 15 Minuten ausführen

So führen Sie für immer alle X Sekunden einen Linux-Befehl aus

So planen Sie einen Job in Cron so, dass er jede Stunde in Ubuntu 20.04 ausgeführt wird

So führen Sie jede Woche am Sonntag einen Crontab-Job aus

Wie würde ich einen Cron-Job dazu bringen, alle 30 Minuten ausgeführt zu werden?

Wie führe ich Cron-Jobs jeden Tag zu einer bestimmten Stunde aus?