Crontab ist ein häufig verwendetes Tool zur geplanten Ausführung unter Unix/Linux-Systemen, das bestimmte Jobs ohne manuelles Eingreifen ausführen kann. Oftmals müssen wir den Crontab-Befehl verwenden. Beispielsweise verwendet das im Let’s Encrypt Wildcard-SSL-Zertifikat für kostenlose Domänen erwähnte Skript die geplante Crontab-Aufgabe, um das SSL-Zertifikat zu aktualisieren.

Mit dem Befehl „crontab“ können wir bestimmte Systemanweisungen oder Shell-Skripte in festen Abständen ausführen. Wenn der Linux-VPS Google Drive und Dropbox bereitstellt, können wir den Befehl „Crontab“ verwenden, um eine geplante Synchronisierungssicherung durchzuführen, und mit Crontab den VPS und den Server regelmäßig neu starten jeden Tag. Oder Nginx-, PHP-, MySQL-Dienste usw.

Kurz gesagt, die Beherrschung der grundlegenden Crontab-Befehlssyntax ist für die Verwaltung unserer eigenen VPS-Hosts sehr wichtig. In diesem Artikel wird anhand von Beispielen erklärt, wie man den Linux-Crontab-Befehl verwendet. Dies dient hauptsächlich der Erleichterung einer schnellen Abfrage und Referenz in der Zukunft.

Linux Crontab-Befehl, geplante Aufgabe, grundlegende Syntax und Bedienung, Tutorial – VPS/Server-Automatisierungsbetrieb

Weitere Befehle und Anwendungen im Zusammenhang mit VPS-Hosting finden Sie hier:

  1. Zusammenfassung der Linux-Systemüberwachungsbefehle – Master-CPU, Speicher, Festplatten-E/A usw., um Leistungsengpässe zu finden
  2. Drei Befehlstools: Rsync, SCP und Tar – schnelle Lösung für die VPS-Remote-Website-Verlagerung und Datensynchronisierung
  3. Drei Möglichkeiten, Ordnerverzeichnisse unter Linux freizugeben: NFS-Remote-Mounting, GlusterFS-Freigabespeicher und Samba-Freigabeverzeichnisse

1. Crontab-Ansicht und Neustart bearbeiten

1. Sehen Sie sich die Liste der geplanten Ausführungsaufgaben von crontab an

crontab -l

2. Bearbeiten Sie crontab, um Aufgaben regelmäßig auszuführen

crontab -e

3. Löschen Sie geplante Crontab-Aufgaben

crontab -r

4. Verwandte Befehle:

sudo service crond start     #启动服务
sudo service crond stop      #关闭服务
sudo service crond restart   #重启服务
sudo service crond reload    #重新载入配置
sudo service crond status    #查看服务状态

2. Crontab-Grundformatsyntax

Zeitausdruck von Crontab:

基本格式 :
*  *  *  *  *  command
分 时 日 月 周 命令

Schauen wir uns zunächst ein Beispiel an. Führen Sie das Sicherungsprogramm jeden Tag um 1:00 Uhr aus: 0 1 * * * /root/wzfou.com/backup.sh. Darunter ist /root/wzfou.com/backup.sh der Skriptpfad. Um den absoluten Pfad zu verwenden, sehen Sie sich bitte das vorherige Datumsformat in der Abbildung unten an.

Instanz 1: wird alle 1 Minute ausgeführt

* * * * * /root/wzfou.com/backup.sh

Instanz 2: Einmal stündlich in der 3. und 15. Minute ausführen

3,15 * * * * /root/wzfou.com/backup.sh

Beispiel 3: Einmal täglich von 8:00 bis 11:00 Uhr in der 3. und 15. Minute ausführen

3,15 8-11 * * * /root/wzfou.com/backup.sh

Instanz 4: Wird alle zwei Tage zur 3. und 15. Minute von 8:00 bis 11:00 Uhr ausgeführt

3,15 8-11 */2  *  * /root/wzfou.com/backup.sh

Instanz 5: Wird jeden Montag von 8:00 bis 11:00 Uhr zur 3. und 15. Minute ausgeführt

3,15 8-11 * * 1 /root/wzfou.com/backup.sh

Beispiel 6:Einmal jeden Abend um 21:30 Uhr ausführen

30 21 * * * /root/wzfou.com/backup.sh

Instanz 7: Einmal jeden Monat um 4:45 Uhr am 1., 10. und 22. ausführen

45 4 1,10,22 * * /root/wzfou.com/backup.sh

Beispiel 8:Einmal jeden Samstag und Sonntag um 1:10 ausführen

10 1 * * 6,0 /root/wzfou.com/backup.sh

Instanz 9: Wird täglich alle 30 Minuten zwischen 18:00 und 23:00 Uhr ausgeführt

0,30 18-23 * * * /root/wzfou.com/backup.sh

Instanz 10: Einmal jeden Samstag um 23:00 Uhr ausführen

0 23 * * 6 /root/wzfou.com/backup.sh

Beispiel 11:Einmal pro Stunde ausführen

* */1 * * * /root/wzfou.com/backup.sh

Beispiel 12:Wird jede Stunde zwischen 23:00 Uhr jede Nacht und 7:00 Uhr am nächsten Tag ausgeführt

* 23-7/1 * * * /root/wzfou.com/backup.sh

Beispiel 13: wird am ersten Tag jeder Woche ausgeführt (d. h. es beginnt jeden Sonntagabend um 24:00 Uhr).

@weekly /root/wzfou.com/backup.sh

Beispiel 14:Einmal am 15. eines jeden Monats ausführen.

0 11 15 * * /root/wzfou.com/backup.sh

Instanz 15: wird einmal am ersten Tag jedes Monats ausgeführt (d. h. es beginnt am 1. jedes Monats um 0 Uhr morgens).

@monthly /root/wzfou.com/backup.sh

Instanz 16: wird einmal im angegebenen Monat ausgeführt (wird einmal jede Nacht um 0:00 Uhr im Januar, April und Juni ausgeführt).

0 0 * jan,apr,jun * /root/wzfou.com/backup.sh

Instanz 17: Nach dem Neustart einmal ausführen.

@reboot /root/wzfou.com/backup.sh

Beispiel 18:Senden Sie eine E-Mail-Benachrichtigung, nachdem die geplante Aufgabe ausgeführt wurde.

MAILTO="raj"
1 1 * * * /root/wzfou.com/backup.sh

Beispiel 19: Shell angeben (Standard ist /bin/bash)

SHELL=/bin/sh
1 1 * * * /root/wzfou.com/backup.sh

Instanz 20: gibt Umgebungsvariablen an.

PATH=/sbin:/bin:/usr/sbin:/usr/bin 
1 1 * * * /root/wzfou.com/backup.sh

4. Mögliche Probleme mit Crontab

4.1  Crontab wird nicht sofort wirksam

Ihre neu erstellte geplante Crontab-Aufgabe muss nach dem Speichern 2 Minuten warten, bevor sie ausgeführt wird. Wenn Sie sie sofort ausführen möchten, können Sie Crontab natürlich neu starten. Wenn Crontab fehlschlägt, können Sie versuchen, /etc/init.d/crond neu zu starten, um das Problem zu lösen, oder im Protokoll nachsehen, ob eine bestimmte Aufgabe ausgeführt wird/ein Fehler gemeldet wird tail -f /var/log/cron.

4.2  Crontab wird nicht ausgeführt

Wenn der Dateipfad im Skript enthalten ist, schreiben Sie den globalen Pfad. Nach der Aktualisierung der Systemzeit und Zeitzone muss cron neu gestartet werden. Wenn die manuelle Ausführung des Skripts in Ordnung ist, die Crontab jedoch nicht ausgeführt wird, handelt es sich höchstwahrscheinlich um eine Umgebungsvariable. Sie können versuchen, die Umgebungsvariable direkt in die Crontab einzuführen, um das Problem zu lösen, zum Beispiel:

0 * * * * . /etc/profile;/bin/sh /root/wzfou.com/backup.sh

4.3  Crontab hat keine Berechtigung zum Ausführen

Achten Sie auf die Aufgabenplanung auf Systemebene und auf die Aufgabenplanung auf Benutzerebene. Nur der Root-Benutzer und der Besitzer der Datei crontab können -e, -l, -r und - ausführen. v< Verwenden Sie UserName nach dem ept4>-Flag, um die Datei crontab für einen angegebenen Benutzer zu bearbeiten, aufzulisten, zu entfernen oder zu überprüfen.

Der Aufgabenplanungsvorgang des Root-Benutzers kann über „crontab -uroot -e“ festgelegt werden, oder die geplanten Aufgaben können direkt in die Datei /etc/crontab geschrieben werden.

Um die Crontabs eines anderen Benutzers zu bearbeiten, führen Sie den folgenden Befehl als Root aus. Das gleiche Format (hängen Sie „-u Benutzername“ an das Ende des Befehls an) kann auch zum Auflisten oder Löschen von Crontabs verwendet werden.

 crontab -u username -e

4.4  Benachrichtigung nach Crontab-Ausführung

Wenn die geplante Crontab-Aufgabe zum von Ihnen angegebenen Zeitpunkt ausgeführt wird, sendet Ihnen das System einen Brief mit dem Ausführungsinhalt des Programms, der im Protokoll /var/log/cron zu sehen ist. Wenn Sie eine solche Benachrichtigung nicht erhalten möchten, fügen Sie bitte > /dev/null 2>&1 nach einem Leerzeichen in jeder Zeile hinzu.

Hinterlasse eine Antwort