Der crontab ist eine Liste von Befehlen, die Sie regelmäßig ausführen möchten, sowie der Name des Befehls, der zum Verwalten dieser Liste verwendet wird. Crontab steht für Cron Table, da es den Job-Scheduler Cron zum Ausführen von Aufgaben verwendet. cron selbst ist nach Chronos benannt, dem griechischen Wort für Zeit. Cron ist der Systemprozess, der nach einem festgelegten Zeitplan automatisch Aufgaben für Sie ausführt. Der Zeitplan wird Crontab genannt, was auch der Name des Programms ist, mit dem dieser Zeitplan bearbeitet wird.
Linux Crontab-Syntax
Das Linux-Crontab-Format wird durch die folgende Syntax dargestellt:
MIN HOUR DOM MON DOW CMD>
Lassen Sie uns jedes Feld aufschlüsseln:
| Feld | Beschreibung | Zulässiger Wert |
|---|---|---|
| MIN (Minute) | Gibt die Minute an, in der der Befehl ausgeführt wird | Der Wert liegt zwischen 0 und 59. |
| STUNDE | Gibt die Stunde des Tages an, zu der die Ausführung des Befehls geplant ist. | Es reicht von 0 bis 23. |
| DOM (Tag des Monats) | Gibt den Tag des Monats für die Aufgabe an. | Der Wert liegt zwischen 1 und 31. |
| MON (Monat) | Gibt den Monat an, in dem der Befehl ausgeführt wird. | Sie variiert zwischen 1 und 12. |
| DOW (Wochentag) | Gibt den Wochentag für die Aufgabe an. | Er wird durch Zahlen von 0 bis 6 dargestellt, wobei 0 und 6 jeweils dem Sonntag entsprechen. |
| CMD (Befehl) | Stellt den tatsächlichen Befehl oder das Skript dar, der zum geplanten Zeitpunkt ausgeführt wird. | —————– |
Beispiele für Cron-Jobs
1. Planen eines Jobs für eine bestimmte Zeit
Die grundlegende Verwendung von Cron besteht darin, einen Job in einer bestimmten Zeit auszuführen, wie unten gezeigt. Dadurch wird das vollständige Backup-Shell-Skript (vollständiges Backup) am 10. Juni um 08:30 Uhr ausgeführt. Das Zeitfeld verwendet das 24-Stunden-Format. Verwenden Sie also für 8 Uhr morgens 8 und für 20 Uhr 20.
30 08 10 06 * /home/maverick/full-backup>
30 – 30. Minute 08 – 08 Uhr 10 – 10. Tag 06 – 6. Monat (Juni) * – Jeden Tag der Woche
2. Um die Crontab-Einträge anzuzeigen
- Crontab-Einträge des aktuell angemeldeten Benutzers anzeigen: Um Ihre Crontab-Einträge anzuzeigen, geben Sie crontab -l in Ihrem Unix-Konto ein.

- Root-Crontab-Einträge anzeigen: Melden Sie sich als Root-Benutzer an (su – root) und führen Sie crontab -l aus.

- So zeigen Sie Crontab-Einträge anderer Linux-Benutzer an: Melden Sie sich als Root an und verwenden Sie -u {Benutzername} -l.

3. Um Crontab-Einträge zu bearbeiten Bearbeiten Sie die Crontab-Einträge des aktuell angemeldeten Benutzers.
Um Crontab-Einträge zu bearbeiten, verwenden Sie crontab -e. Standardmäßig wird dadurch die Crontab des aktuell angemeldeten Benutzers bearbeitet. 
4. Mit Cron einen Job für jede Minute planen.
Im Idealfall müssen Sie nicht jede Minute einen Auftrag planen. Aber das Verständnis dieses Beispiels wird Ihnen helfen, die anderen Beispiele zu verstehen.
* * * * * CMD>
Das * bedeutet alle möglichen Einheiten – also jede Minute jeder Stunde das ganze Jahr über. Sie können dieses * nicht nur direkt verwenden, es wird Ihnen auch in den folgenden Fällen sehr nützlich sein. Wenn Sie im Minutenfeld */5 angeben, bedeutet dies alle 5 Minuten. Wenn Sie im Minutenfeld 0-10/2 angeben, bedeutet dies alle 2 Minuten in den ersten 10 Minuten. Somit kann die obige Konvention für alle anderen 4 Felder verwendet werden.
5. Um einen Job mehr als einmal zu planen (z. B. zweimal am Tag)
Das folgende Skript erstellt jeden Tag zweimal täglich eine inkrementelle Sicherung. In diesem Beispiel wird das angegebene inkrementelle Backup-Shell-Skript (incremental-backup) jeden Tag um 11:00 und 16:00 Uhr ausgeführt. Der durch Kommas getrennte Wert in einem Feld gibt an, dass der Befehl in der angegebenen Zeit ausgeführt werden muss.
00 11, 16 * * * /home/maverick/bin/incremental-backup>
00 – 0. Minute (zu jeder vollen Stunde) 11, 16 – 11 Uhr und 16 Uhr * – Jeden Tag * – Jeden Monat * – Jeden Tag der Woche
6. Um einen Job für einen bestimmten Zeitraum zu planen (z. B. nur an Wochentagen)
Wenn Sie möchten, dass ein Auftrag für jede Stunde innerhalb eines bestimmten Zeitraums geplant wird, verwenden Sie Folgendes.
- Cron-Job jeden Tag während der Arbeitszeit: In diesem Beispiel wird täglich (einschließlich Wochenenden) während der Arbeitszeit von 9:00 bis 18:00 Uhr der Status der Datenbank überprüft
00 09-18 * * * /home/maverick/bin/check-db-status>
- 00 – 0. Minute (zu jeder vollen Stunde) 09–18 – 9 Uhr, 10 Uhr, 11 Uhr, 12 Uhr, 13 Uhr, 14 Uhr, 15 Uhr, 16 Uhr, 17 Uhr, 18 Uhr * – Jeden Tag * – Jeden Monat * – Jeder Tag der Woche
- Cron-Job an jedem Wochentag während der Arbeitszeit: In diesem Beispiel wird der Status der Datenbank an jedem Wochentag (d. h. außer Samstag und Sonntag) während der Arbeitszeit von 9 bis 18 Uhr überprüft.
00 09-18 * * 1-5 /home/maverick/bin/check-db-status>
- 00 – 0. Minute (zu jeder vollen Stunde) 09–18 – 9 Uhr, 10 Uhr, 11 Uhr, 12 Uhr, 13 Uhr, 14 Uhr, 15 Uhr, 16 Uhr, 17 Uhr, 18 Uhr * – Jeden Tag * – Jeden Monat 1–5 – Mo, Di, Mi, Do und Fr (jeden Wochentag)
7. So planen Sie alle 10 Minuten einen Cron-Job im Hintergrund.
Verwenden Sie Folgendes, wenn Sie den Speicherplatz alle 10 Minuten überprüfen möchten.
Spring-Boot-Architektur
*/10 * * * * /home/maverick/check-disk-space>
Es führt das ganze Jahr über alle 10 Minuten den angegebenen Befehl check-disk-space aus. Möglicherweise möchten Sie den Befehl jedoch nur zu bestimmten Zeiten ausführen oder umgekehrt. Die obigen Beispiele zeigen, wie man diese Dinge macht. Anstatt Werte in den 5 Feldern anzugeben, können wir sie wie unten beschrieben mit einem einzelnen Schlüsselwort angeben. Es gibt Sonderfälle, in denen Sie anstelle der oben genannten 5 Felder „@“ gefolgt von einem Schlüsselwort verwenden können – z. B. „reboot“, „midnight“, „yearly“, „stündlich“. Cron-Spezialschlüsselwörter und ihre Bedeutung
Keyword Equivalent @yearly 0 0 1 1 * @daily 0 0 * * * @hourly 0 * * * * @reboot Run at startup.>
8. So planen Sie mit @yearly einen Job für die erste Minute eines jeden Jahres
Wenn Sie möchten, dass ein Job in der ersten Minute eines jeden Jahres ausgeführt wird, können Sie das Cron-Schlüsselwort @yearly wie unten gezeigt verwenden. Dadurch wird die jährliche Systemwartung mithilfe des Shell-Skripts „annual-maintenance“ am 1. Januar um 00:00 Uhr ausgeführt jedes Jahr.
@yearly /home/maverick/bin/annual-maintenance>
9. So planen Sie einen Cron-Job zu Beginn jedes Monats mit @monthly
Es ist dem @yearly wie oben ähnlich. Führt den Befehl jedoch einmal monatlich mit dem Cron-Schlüsselwort @monthly aus. Dadurch wird die Bandsicherung des Shell-Skripts am 1. jedes Monats um 00:00 Uhr ausgeführt.
@monthly /home/maverick/bin/tape-backup>
10. So planen Sie jeden Tag einen Hintergrundjob mit @daily
Mit dem Schlüsselwort @daily cron wird täglich um 00:00 Uhr eine Protokolldateibereinigung mithilfe des Shell-Skripts „cleanup-logs“ durchgeführt.
@daily /home/maverick/bin/cleanup-logs 'day started'>
11. Um nach jedem Neustart einen Linux-Befehl mit @reboot auszuführen
Mit dem Cron-Schlüsselwort @reboot wird der angegebene Befehl jedes Mal einmal ausgeführt, nachdem die Maschine gebootet wurde.
@reboot CMD>


