Linux-Crontab-Befehl: Zyklische Ausführung geplanter Aufgaben (ausführliche Erklärung)

Das Grundformat des crontab-Befehls ist wie folgt:

[root@localhost ~]# crontab [Optionen] [Datei]

Datei bezieht sich auf den Namen der Befehlsdatei, was bedeutet, dass die Datei als Aufgabenlistendatei von Crontab verwendet und in Crontab geladen wird. Wenn der Dateiname nicht in der Befehlszeile angegeben ist, akzeptiert dieser Befehl den im Standard eingegebenen Befehl Eingabe (Tastatur) und Sie geben crontab ein.

Tabelle 1 listet die häufig verwendeten Optionen und Funktionen dieses Befehls auf.

Tabelle 1 Allgemeine Optionen und Funktionen des Befehls crontab
Optionen Funktion
-u Benutzer Wird verwendet, um den Crontab-Dienst eines bestimmten Benutzers festzulegen. Beispielsweise gibt „-u demo“
den Crontab-Dienst des Gerätedemobenutzers an. Diese Option wird normalerweise vom Root-Benutzer ausgeführt.
-e Bearbeiten Sie den Inhalt der Crontab-Datei eines Benutzers. Wenn kein Benutzer angegeben ist, bedeutet dies, dass die Crontab-Datei des aktuellen Benutzers bearbeitet wird.
-l Zeigt den Inhalt der Crontab-Datei eines Benutzers an. Wenn kein Benutzer angegeben ist, bedeutet dies, dass der Inhalt der Crontab-Datei des aktuellen Benutzers angezeigt wird.
-R  Löschen Sie die Crontab-Datei eines Benutzers aus /var/spool/cron. Wenn kein Benutzer angegeben ist, wird die Crontab-Datei des aktuellen Benutzers standardmäßig gelöscht. 
-ich Geben Sie beim Löschen der Crontab-Datei des Benutzers eine Bestätigungsaufforderung ein.

Geplante Crontab-Aufgaben sind sehr einfach. Führen Sie einfach den Befehl „crontab -e“ aus und geben Sie die Aufgabe ein, die Sie regelmäßig ausführen möchten. Wenn wir jedoch den Befehl „crontab -e“ ausführen, wird eine leere Datei geöffnet und die Operationsmethode ist dieselbe wie bei Vim. Das Dateiformat ist wie folgt:

[root@localhost! ]# crontab -e
#Öffnen Sie die Crontab-Bearbeitungsoberfläche. Vim wird geöffnet, um Ihre Aufgabe zu bearbeiten.
* * * * * Auszuführende Aufgabe 

In dieser Datei werden 5 „*“ verwendet, um die Ausführungszeit des Befehls oder der Aufgabe zu bestimmen. Die spezifische Bedeutung dieser 5 „*“ ist in Tabelle 2 aufgeführt.

Tabelle 2 Crontab-Zeitdarstellung
Projekt Bedeutung Umfang
Erste"*" Die Minute der Stunde (Minute) 0~59
der Zweite"*" Stunde des Tages (Stunde) 0~23
Der dritte"*" Tag des Monats (Tag) 1~31
die vierte"*" Monat des Jahres (Monat) 1~12
der fünfte"*" Wochentag (Woche) 0~7 (0 und 7 stehen beide für Sonntag)

Bei der Zeitdarstellung gibt es einige Sonderzeichen, wie in Tabelle 3 dargestellt.

Tabelle 3 Sonderzeitsymbole
spezielle Symbole Bedeutung
*(Sternchen) Stellt jederzeit dar. Das erste „*“ bedeutet beispielsweise, dass es eine Stunde lang jede Minute ausgeführt wird.
,(Komma) Stellt diskontinuierliche Zeit dar. Beispielsweise bedeutet „Befehl 0 8, 12, 16***“, dass der Befehl jeden Tag um 8:00, 12:00 und 16:00 Uhr ausgeführt wird.
-(mittlerer Balken) Stellt einen kontinuierlichen Zeitbereich dar. Beispielsweise bedeutet „0 5 ** 1-6 Befehl“ die Ausführung des Befehls um 5:00 Uhr morgens von Montag bis Samstag.
/ (Schrägstrich) Gibt an, wie oft es ausgeführt wird. „*/10**** Befehl“ bedeutet beispielsweise, dass der Befehl alle 10 Minuten ausgeführt wird.

Nachdem die Bearbeitung mit „crontab -e“ abgeschlossen ist, wird die geplante Aufgabe nach dem Speichern und Beenden tatsächlich in das Verzeichnis /var/spool/cron/ geschrieben. Die geplanten Aufgaben jedes Benutzers werden durch ihren eigenen Benutzernamen unterschieden. Und der Crontab-Befehl wird wirksam, solange er gespeichert wird und der Crond-Dienst gestartet wird.

 Crontab-Beispiel:

Zeitbedeutung 45 22 *** Befehl führt Befehl 0 um 22:45 aus 17 ** 1 Befehl führt Befehl 0 aus 5 1 jeden Montag um 17:00 Uhr, 15** Befehl führt um 5 Uhr morgens am 1. und 15. jedes Monats aus Befehl ausführen 40 um 0:00 Uhr 4 ** 1-5 Befehl führt Befehl jeden Montag bis Freitag um 4:40 Uhr aus */10 4 *** Befehl führt Befehl 0 jeden Tag um 4:00 Uhr alle 10 Minuten aus 0 1, 15 * 1 Befehl wird am 1. und 15. jedes Monats und jede Woche um 0:00 Uhr ausgeführt. Hinweis: Es ist am besten, den Wochentag und den Tag nicht gleichzeitig anzuzeigen, da sie beide Tage definieren, die ist sehr einfach. Administratoren verwirren


[Beispiel 1] Lassen Sie das System alle 5 Minuten eine Zeile „11“ in die Datei /tmp/test schreiben, um zu überprüfen, ob die vom System geplante Aufgabe ausgeführt wird.

[root@localhost ~]# crontab -e
#Betreten Sie die Bearbeitungsoberfläche
*/5 * * * * /bin/echo "11" >> /tmp/test

 Diese Aufgabe hat in der Zeitarbeit keine Bedeutung, kann aber leicht überprüfen, ob unsere geplanten Aufgaben normal ausgeführt werden können. Wenn Sie der Meinung sind, dass alle 5 Minuten zu lang sind, ändern Sie es in „*“ und lassen Sie es jede Minute ausführen. Und wenn wir Systembefehle regelmäßig ausführen, ist es wie beim Befehl at am besten, absolute Pfade zu verwenden.

[Beispiel 2] Lassen Sie das System jeden Dienstag um 5:05 Uhr neu starten.

[root@localhost ~]# crontab -e
5.5 * * 2 /sbin/shutdown -r now

Wenn der Server stark ausgelastet ist, wird empfohlen, ihn einmal pro Woche neu zu starten, um den Systemstatus auf Null zurückzusetzen. Beispielsweise werden die meisten Spieleserver einmal pro Woche gewartet. Die wichtigste Aufgabe bei der Wartung besteht darin, neu zu starten und den Systemstatus auf Null zurückzusetzen. Zu diesem Zeitpunkt können wir unseren Server regelmäßig automatisch ausführen lassen.

[Beispiel 3] Das Protokollsicherungsskript autobak.sh wird regelmäßig um 3:30 Uhr am 1., 10. und 15. eines jeden Monats ausgeführt.

[root@localhost ~]# crontab -e
30.3 1,10,15 * * /root/sh/autobak.sh

 Nachdem diese geplanten Aufgaben gespeichert wurden, können sie zum angegebenen Zeitpunkt ausgeführt werden. Mit Befehlen können Sie geplante Aufgaben anzeigen und löschen. Die Befehle lauten wie folgt:

[root@localhost ~]# crontab -l
#Crontab-Aufgaben des Root-Benutzers anzeigen
*/5 * * * * /bin/echo "11" >> /tmp/test
5.5 * * 2 /sbin/shutdown -r now
30.3 1 , 10, 15 * * /root/sh/autobak.sh
[root@localhost ~]# crontab -r
#Alle geplanten Aufgaben des Root-Benutzers löschen. Wenn Sie nur eine bestimmte geplante Aufgabe löschen möchten, können Sie den Befehl „crontab -e“ ausführen, um in den
#Bearbeitungsmodus zu wechseln und manuell zu löschen
[root@localhost ~]# crontab -l
no crontab for root
#Nach dem Löschen die Zeitangaben abfragen des Root-Benutzers Mission erfüllt

Beim Schreiben geplanter Crontab-Aufgaben müssen Sie Folgendes beachten:

  • Alle 6 Optionen dürfen nicht leer sein und müssen ausgefüllt werden. Wenn Sie sich nicht sicher sind, verwenden Sie „*“, um eine beliebige Uhrzeit darzustellen.
  • Die minimale Gültigkeitsdauer einer geplanten Crontab-Aufgabe beträgt Minuten und die maximale Gültigkeitsdauer beträgt Monate. Zeiten wie Ausführung irgendwann im Jahr 2018 und 3:30 Minuten und 30 Sekunden können nicht erkannt werden.
  • Beim Definieren der Zeit ist es am besten, Datum und Woche nicht in eine geplante Aufgabe einzubeziehen, da beide in Tagen gemessen werden, was Administratoren leicht verwirren kann.
  • Bei geplanten Aufgaben ist es am besten, absolute Pfade zu verwenden, unabhängig davon, ob Sie Befehle direkt oder in einem Skript schreiben. Manchmal melden Befehle, die relative Pfade verwenden, Fehler.

Ich denke du magst

Origin blog.csdn.net/qq_43079001/article/details/132083577
Empfohlen
Rangfolge