Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Geplante Aufgaben unter Linux – geplante Aufgaben, die regelmäßig ausgeführt werden

Geplante Aufgaben unter Linux – geplante Aufgaben, die regelmäßig ausgeführt werden

齐天大圣
齐天大圣Original
2020-11-07 22:42:002990Durchsuche

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn