GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Cron Vs Anacron:So richten Sie Anacron unter Linux ein (mit einem Beispiel)

Anacron ist der Cron für Desktops und Laptops.

Anacron erwartet nicht, dass das System rund um die Uhr wie ein Server läuft.

Wenn Sie möchten, dass ein Hintergrundjob automatisch auf einem Computer ausgeführt wird, der nicht rund um die Uhr läuft, sollten Sie anacron verwenden.

Wenn Sie beispielsweise ein Backup-Skript jeden Tag um 23:00 Uhr als regulären Cron-Job geplant haben und Ihr Laptop um 23:00 Uhr nicht betriebsbereit ist, wird Ihr Backup-Job nicht ausgeführt.

Wenn Sie jedoch denselben Job in Anacron geplant haben, können Sie sicher sein, dass er ausgeführt wird, sobald der Laptop wieder hochgefahren ist.

Anacrontab-Format

So wie Cron /etc/crontab hat, hat Anacron /etc/anacrontab.

Die Datei /etc/anacrontab enthält die erwähnten Anacron-Jobs im folgenden Format.

period   delay   job-identifier   command

Feld 1 ist Wiederholungszeitraum: Dies ist ein numerischer Wert, der die Anzahl der Tage angibt.

  • 1 – täglich
  • 7 – wöchentlich
  • 30 – monatlich
  • N – Dies kann ein beliebiger numerischer Wert sein. N gibt die Anzahl der Tage an

Hinweis:Sie können auch „@monthly“ für einen Job verwenden, der monatlich ausgeführt werden muss.

Feld 2 ist Verzögerung: Dies gibt die Verzögerung in Minuten an. D.h. X Minuten, die Anacron warten sollte, bevor der Job ausgeführt wird, nachdem die Maschine gestartet wurde.

Feld 3 ist die Stellenkennung: Dies ist der Name für die Zeitstempeldatei des Jobs. Es sollte für jeden Job einzigartig sein. Diese wird als Datei im Verzeichnis /var/spool/anacron verfügbar sein. Diese Datei enthält eine einzelne Zeile, die angibt, wann dieser Job zuletzt ausgeführt wurde.

# ls -1 /var/spool/anacron/
test.daily
cron.daily
cron.monthly
cron.weekly

# cat /var/spool/anacron/test.daily
20110507

Feld 4 ist Befehl: Befehl oder Shell-Skript, das ausgeführt werden muss.

Genau wie Shell-Skripte beginnen Kommentare in einer anacrontab-Datei mit #

Hinweis: Informationen zum /etc/crontab-Dateiformat finden Sie in unserem Artikel Linux Crontab:15 Awesome Cron Job Examples.

Anacron-Beispiel

Das folgende Beispiel führt das Skript /home/sathiya/backup.sh alle 7 Tage einmal aus.

An dem Tag, an dem der Job backup.sh ausgeführt werden soll und das System aus irgendeinem Grund heruntergefahren ist, führt anacron das Skript backup.sh 15 Minuten, nachdem das System wieder hochgefahren ist, aus (ohne weitere 7 Tage warten zu müssen).

# cat /etc/anacrontab
7       15      test.daily      /bin/sh /home/sathiya/backup.sh

START_HOURS_RANGE und RANDOM_DELAY

Das obige Beispiel zeigt, dass das Skript backup.sh jeden Tag mit einer Verzögerung von 15 Minuten ausgeführt werden sollte. D.h. wenn der Laptop gestartet wurde, wurde er erst nach 15 Minuten ausgeführt.

Was passiert, wenn der Laptop oder Desktop nicht heruntergefahren wurde? Wann wird der Job ausgeführt? Dies wird durch die Umgebungsvariable START_HOURS_RANGE in der Datei /etc/anacrontab angegeben.

Standardmäßig ist dies in der Datei auf 3-22 eingestellt. Dies gibt den Zeitbereich von 3:00 Uhr bis 22:00 Uhr an.

# grep START /etc/anacrontab
START_HOURS_RANGE=3-22

Zusätzlich zu der benutzerdefinierten Verzögerung, die im 2. Feld der Datei /etc/anacrontab angegeben ist, fügt anacron zufällig x Minuten hinzu. Das x wird durch die Variable RANDOM_DELAY in der Datei /etc/anacrontab definiert.

Standardmäßig ist dies in der Datei auf 45 eingestellt. Das bedeutet, dass anacron x Minuten hinzufügt (zufällig zwischen 0 und 45 ausgewählt) und dies zur benutzerdefinierten Verzögerung hinzufügt.

# grep RANDOM /etc/anacrontab
RANDOM_DELAY=45

Cron gegen Anacron

Cron und Anacron haben ihre eigenen Vor- und Nachteile. Verwenden Sie je nach Bedarf eine davon.

Cron Anacron
Die minimale Granularität ist minütlich (d. h. Jobs können so geplant werden, dass sie jede Minute ausgeführt werden) Mindestauflösung nur in Tagen
Cron-Job kann von jedem normalen Benutzer geplant werden (wenn nicht durch Superuser eingeschränkt) Anacron kann nur von Superuser verwendet werden (aber es gibt Problemumgehungen, um es für normale Benutzer nutzbar zu machen)
Cron erwartet, dass das System rund um die Uhr läuft. Wenn ein Job geplant ist und das System während dieser Zeit heruntergefahren ist, wird der Job nicht ausgeführt. Anacron erwartet nicht, dass das System rund um die Uhr läuft. Wenn ein Job geplant ist und das System während dieser Zeit heruntergefahren ist, startet es die Jobs, wenn das System wieder hochfährt.
Ideal für Server Ideal für Desktops und Laptops
Cron verwenden, wenn ein Job zu einer bestimmten Stunde und Minute ausgeführt werden muss Anacron verwenden, wenn ein Job unabhängig von Stunde und Minute ausgeführt werden muss

Linux
  1. Wie ich Cron unter Linux verwende

  2. So verwenden Sie das Cron-Job-Format zum Planen von Aufgaben in Linux

  3. So richten Sie Rsync mit SSH unter UNIX / Linux ein (rsync ohne Passwort)

  4. So planen Sie Jobs mit dem Befehl „at“ unter Linux

  5. Wie richte ich einen CRON-Job so ein, dass er alle 10 Sekunden unter Linux ausgeführt wird?

So richten Sie MySQL mit Docker unter Linux ein

So automatisieren Sie Aufgaben mit Cron-Jobs in Linux

So richten Sie einen Cron-Job in Debian 10 ein

So richten Sie einen Cron-Job in cPanel ein

So richten Sie Logstash unter Linux mit ElasticSearch, Redis, Nginx ein

So planen Sie Jobs mit Cron in Linux