Der in Linux integrierte cron-Prozess kann uns helfen, diese Anforderungen zu erfüllen. In Kombination mit Shell-Skripten kann cron sogar sehr komplexe Befehle verarbeiten.

Einführung in cron

Der Befehl crontab, den wir häufig verwenden, ist die Kurzform von cron table. Er ist die Konfigurationsdatei für cron, auch Jobliste genannt. Die entsprechenden Konfigurationsdateien finden wir in den folgenden Ordnern.

  • Das Verzeichnis /var/spool/cron/ speichert crontab-Aufgaben für jeden Benutzer, einschließlich root. Jede Aufgabe ist nach ihrem Ersteller benannt.
  • /etc/crontab Diese Datei ist für die Planung verschiedener administrativer und Wartungsaufgaben zuständig.
  • /etc/cron.d/ Dieses Verzeichnis wird verwendet, um crontab-Dateien oder auszuführende Skripte zu speichern.
  • Wir können Skripte auch in die Verzeichnisse /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly und /etc/cron.monthly legen, um sie einmal pro Stunde, Tag, Woche oder Monat auszuführen.

Verwendung von crontab

Die Befehle, die wir üblicherweise verwenden, sind wie folgt:

crontab [-u username]    //省略用户表表示操作当前用户的crontab
    -e      (编辑工作表)
    -l      (列出工作表里的命令)
    -r      (删除工作作)

Wir verwendencrontab -e, um den Arbeitstabellen-Editor des aktuellen Benutzers aufzurufen, die gängige vim-Oberfläche. Jede Zeile ist ein Befehl.

Die Struktur des crontab-Befehls besteht aus Zeit + Aktion. Seine Zeitangabe hatMinute, Stunde, Tag, Monat, Wochefünf Typen. Die Operatoren sind:

  • * Alle Zahlen innerhalb des Wertebereichs
  • /Jede n-te Zahl
  • -Von X bis Z
  • ,Einzelne Zahlen

Beispiele

Beispiel 1: myCommand jede 1 Minute ausführen

* * * * * myCommand

Beispiel 2: Zur 3. und 15. Minute jeder Stunde ausführen

3,15 * * * * myCommand

Beispiel 3: Zur 3. und 15. Minute zwischen 8 AM und 11 AM ausführen

3,15 8-11 * * * myCommand

Beispiel 4: Zur 3. und 15. Minute zwischen 8 AM und 11 AM alle zwei Tage ausführen

3,15 8-11 */2  *  * myCommand

Beispiel 5: Zur 3. und 15. Minute zwischen 8 AM und 11 AM jeden Montag ausführen

3,15 8-11 * * 1 myCommand

Beispiel 6: smb jeden Abend um 21:30 neu starten

30 21 * * * /etc/init.d/smb restart

Beispiel 7: smb am 1., 10. und 22. jedes Monats um 4:45 neu starten

45 4 1,10,22 * * /etc/init.d/smb restart

Beispiel 8: smb jeden Samstag und Sonntag um 1:10 neu starten

10 1 * * 6,0 /etc/init.d/smb restart

Beispiel 9: smb jeden Tag alle 30 Minuten zwischen 18:00 und 23:00 neu starten

0,30 18-23 * * * /etc/init.d/smb restart

Beispiel 10: smb jeden Samstag um 11:00 pm neu starten

0 23 * * 6 /etc/init.d/smb restart

Beispiel 11: smb jede Stunde neu starten

0 */1 * * * /etc/init.d/smb restart

Beispiel 12: smb jede Stunde zwischen 11 pm und 7 am neu starten

0 23-7/1 * * * /etc/init.d/smb restart