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