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.