Der Befehl at wurde bereits in vielen Artikeln eingeführt. Er wird zum Einrichten einer geplanten Aufgabe verwendet, die nur einmal ausgeführt wird. Werfen wir heute einen Blick auf geplante Aufgaben, die regelmäßig ausgeführt werden. Bei der Arbeit werden häufig periodisch geplante Aufgaben verwendet, wie z. B. regelmäßige Sicherungen von Systemdateien, regelmäßige Sicherungen von Datenbankdateien, Bearbeitung von Bestellungen, die schon lange nicht bezahlt wurden usw.
Benutzer richten regelmäßig geplante Aufgaben ein crontab
Allgemeine Benutzer müssen den Befehl crontab verwenden, wenn sie regelmäßig geplante Aufgaben einrichten möchten. Wie bei verfügt auch Crontab über eine Black- und Whitelist und die Konfigurationsdateien sind -/etc/cron.deny, /etc/cron.allow.
Wenn der Benutzer eine geplante Aufgabe festlegt, wird die Aufgabe im Verzeichnis /var/spool/cron als Textdatei aufgezeichnet.
# ll /var/spool/cron/ total 4 -rw------- 1 root root 98 Jul 28 03:58 root
Über crontab müssen wir uns nur zwei Befehle merken
crontab -e, um eine geplante Aufgabe festzulegen
crontab -l, um eine geplante Aufgabe anzuzeigen
Das Format zum Festlegen einer geplanten Aufgabe ist wie folgt folgt:
基本格式:分 时 日期 月份 星期 命令 取值范围:[0-59] [0-23] [1-31] [1-12] [0-7]
Darüber hinaus müssen wir uns auch die Bedeutung mehrerer Sonderzeichen merken:
* bedeutet jede Zeit
bedeutet getrennte Zeiträume
- bedeutet einen kontinuierlichen Zeitraum der Zeit
/n Stellt alle n-Einheitenintervalle dar
Schauen wir uns die Verwendung der oben genannten Sonderzeichen anhand einiger Beispiele an:
# 每隔5分钟,执行下检测内存的脚本 */n * * * * /root/script/check_memory.sh # 每个月1号凌晨5点20分,重启下服务器 20 5 1 * * /usr/sbin/reboot
Systemkonfigurationsdateien /etc/crontab, /etc/ cron.d/*
In Bezug auf regelmäßig geplante Aufgaben gibt es hauptsächlich drei entsprechende Konfigurationsdateien, nämlich
/var/spool/cron/, die für Benutzer festgelegt sind, und
/etc/crontab , das für geplante Systemaufgaben festgelegt ist.
/etc/cron.d/ Für geplante Aufgaben einer bestimmten Software oder eines bestimmten Systems, z. B. für eine Website, kann es mehrere geplante Aufgaben geben, daher wird empfohlen, eine zu erstellen neu im Verzeichnis /etc/cron.d/ Die Konfigurationsdatei
crontab -e ist für die Benutzerebene konzipiert. Für periodische Aufgaben auf Systemebene wird empfohlen, sie in die Datei /etc/crontal zu schreiben im Verzeichnis /etc/cron.d/.
Schauen Sie sich den Inhalt der Datei /etc/crontab unten an
# cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed # * * * * * root /usr/bin/date >> /root/cron.txt
Sie können sehen, dass sie sich geringfügig von crontab -e unterscheidet. Hier müssen Sie den Benutzernamen angeben.
Als nächstes schauen wir uns an, welche Dateien sich im Verzeichnis /etc/cron.d/ befinden.
# ll /etc/cron.d total 8 -rw-r--r--. 1 root root 128 Aug 3 2017 0hourly -rw------- 1 root root 235 Aug 3 2017 sysstat
Angenommen, es gibt eine Website auf dem Server. Wir müssen die Datenbank und die Website-Dateien regelmäßig sichern. und müssen sie auch regelmäßig verarbeiten, dann können wir eine zugehörige Datei im Verzeichnis /etc/cron.d/ erstellen. Werfen wir einen Blick auf den Inhalt der 0hourly-Datei:
# Run the hourly jobs SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root 01 * * * * root run-parts /etc/cron.hourly
Dieses Skript bedeutet, die Skriptdatei im Verzeichnis /etc/cron.hourly stündlich auszuführen.
Ich schätze, scharfsichtige Freunde haben herausgefunden, dass es neben dem cron.hourly-Verzeichnis auch die Verzeichnisse cron.daily, cron.monthly und cron.weekly gibt. Es gibt jedoch einige Unterschiede zwischen diesen drei Verzeichnissen. Diese drei Verzeichnisse werden von Anacron ausgeführt. Dieses Anacron bedeutet, die nicht ausgeführte geplante Aufgabe aufzuwecken und auszuführen. Wenn Sie beispielsweise crontab -e verwenden, um eine geplante Aufgabe einzurichten, und die Aufgabe aufgrund von Herunterfahren oder aus anderen Gründen nach Ablauf der Zeit nicht ausgeführt wird, können Sie sie nur verpassen, wenn Sie das Skript jedoch in /etc/cron platzieren Im Verzeichnis .daily/ wird es auch nach Ablauf der Zeit ausgeführt, solange es nicht ausgeführt wird.
Das obige ist der detaillierte Inhalt vonGeplante Aufgaben unter Linux – geplante Aufgaben, die regelmäßig ausgeführt werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!