Website-Suche

Cron vs. Anacron: So planen Sie Jobs mit Anacron unter Linux


In diesem Artikel erklären wir cron und anacron und zeigen Ihnen auch, wie Sie Anacron unter Linux einrichten. Wir werden auch einen Vergleich dieser beiden Dienstprogramme behandeln.

Um eine Aufgabe zu einem bestimmten oder späteren Zeitpunkt zu planen, können Sie die Befehle „at“ oder „batch“ verwenden. Um Befehle so einzurichten, dass sie wiederholt ausgeführt werden, können Sie den Befehl < verwendencron- und anacron-Einrichtungen.

Cron – ist ein Daemon, der zum Ausführen geplanter Aufgaben wie Systemsicherungen, Updates und vielem mehr verwendet wird. Es eignet sich zum Ausführen geplanter Aufgaben auf Maschinen, die kontinuierlich rund um die Uhr laufen, wie z. B. Server.

Die Befehle/Aufgaben werden in Cron-Jobs geschrieben, die in Crontab-Dateien geplant werden. Die Standard-Crontab-Datei des Systems ist /etc/crontab, aber jeder Benutzer kann auch seine eigene Crontab-Datei erstellen, die Befehle zu vom Benutzer definierten Zeiten starten kann.

Um eine persönliche Crontab-Datei zu erstellen, geben Sie einfach Folgendes ein:

crontab -e

So richten Sie Anacron unter Linux ein

Anacron wird verwendet, um Befehle regelmäßig mit einer in Tagen definierten Häufigkeit auszuführen. Es funktioniert ein wenig anders als cron; geht davon aus, dass eine Maschine nicht ständig eingeschaltet ist.

Es eignet sich für die Ausführung täglicher, wöchentlicher und monatlich geplanter Jobs, die normalerweise von Cron ausgeführt werden, auf Computern, die nicht rund um die Uhr laufen, wie z. B. Laptops und Desktop-Computer.

Angenommen, Sie haben eine geplante Aufgabe (z. B. ein Backup-Skript), die jede Mitternacht, möglicherweise im Schlaf, mit cron ausgeführt werden soll und Ihr Desktop/Laptop zu diesem Zeitpunkt ausgeschaltet ist. Ihr Backup-Skript wird nicht ausgeführt.

Wenn Sie jedoch anacron verwenden, können Sie sicher sein, dass das Backup-Skript ausgeführt wird, wenn Sie den Desktop/Laptop das nächste Mal wieder einschalten.

Wie Anacron unter Linux funktioniert

Anacron-Jobs werden in /etc/anacrontab aufgelistet und Jobs können mit dem folgenden Format geplant werden (Kommentare in der Anacrontab-Datei müssen mit # beginnen).

period   delay   job-identifier   command

Aus dem obigen Format:

  • Zeitraum – Dies ist die Häufigkeit der Jobausführung, angegeben in Tagen oder als @daily, @weekly oder @monthly einmal pro Tag, Woche oder Monat. Sie können auch Zahlen verwenden: 1 – täglich, 7 – wöchentlich, 30 – monatlich und N – Anzahl der Tage.
  • Verzögerung – es handelt sich um die Anzahl der Minuten, die gewartet werden muss, bevor ein Job ausgeführt wird.
  • Job-ID – Dies ist der eindeutige Name für den Job, der in Protokolldateien geschrieben wird.

Geben Sie Folgendes ein, um Beispieldateien anzuzeigen:

ls -l /var/spool/anacron/

total 12
-rw------- 1 root root 9 Jun  1 10:25 cron.daily
-rw------- 1 root root 9 May 27 11:01 cron.monthly
-rw------- 1 root root 9 May 30 10:28 cron.weekly
  • Befehl – es handelt sich um den Befehl oder das Shell-Skript, der ausgeführt werden soll.
Das passiert praktisch:
  • Anacron prüft, ob ein Job innerhalb des im Periodenfeld angegebenen Zeitraums ausgeführt wurde. Wenn nicht, führt es den im Befehlsfeld angegebenen Befehl aus, nachdem es die im Verzögerungsfeld angegebene Anzahl von Minuten gewartet hat.
  • Sobald der Job ausgeführt wurde, zeichnet er das Datum in einer Zeitstempeldatei im Verzeichnis /var/spool/anacron mit dem im Feld job-id (Name der Zeitstempeldatei) angegebenen Namen auf.

Schauen wir uns nun ein Beispiel an. Dadurch wird täglich das Skript /home/aaronkilik/bin/backup.sh ausgeführt:

@daily    10    example.daily   /bin/bash /home/aaronkilik/bin/backup.sh

Wenn die Maschine ausgeschaltet ist, wenn die Ausführung des Jobs backup.sh erwartet wird, führt Anacron ihn 10 Minuten nach dem Einschalten der Maschine aus, ohne dass weitere 7 Tage gewartet werden müssen.

Es gibt zwei wichtige Variablen in der Anacrontab-Datei, die Sie verstehen sollten:

  • START_HOURS_RANGE – Dies legt den Zeitbereich fest, in dem Jobs gestartet werden (d. h. Jobs nur während der folgenden Stunden ausführen).
  • RANDOM_DELAY – Dies definiert die maximale zufällige Verzögerung, die zur benutzerdefinierten Verzögerung eines Jobs hinzugefügt wird (standardmäßig sind es 45).

So würde Ihre Anacrontab-Datei möglicherweise aussehen.

/etc/anacrontab: configuration file for anacron

See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
HOME=/root
LOGNAME=root

These replace cron's entries
1       5       cron.daily      run-parts --report /etc/cron.daily
7       10      cron.weekly     run-parts --report /etc/cron.weekly
@monthly        15      cron.monthly    run-parts --report /etc/cron.monthly

@daily    10    example.daily   /bin/bash /home/aaronkilik/bin/backup.sh                                                                      

Im Folgenden finden Sie einen Vergleich von cron und anacron, um Ihnen zu helfen, zu verstehen, wann Sie beide verwenden sollten.

It’s a daemon

Es ist kein Dämon

Appropriate for server machines

Geeignet für Desktop-/Laptop-Geräte

Enables you to run scheduled jobs every minute

Ermöglicht Ihnen nur die tägliche Ausführung geplanter Jobs

Doesn’t executed a scheduled job when the machine if off

Wenn das Gerät ausgeschaltet ist, wenn ein geplanter Auftrag fällig ist, wird beim nächsten Einschalten des Geräts ein geplanter Auftrag ausgeführt

Can be used by both normal users and root

Kann nur von Root verwendet werden, sofern nicht anders angegeben (aktiviert für normale Benutzer mit bestimmten Konfigurationen).

Der Hauptunterschied zwischen cron und anacron besteht darin, dass cron effektiv auf Maschinen funktioniert, die kontinuierlich laufen, während anacron vorgesehen ist für Maschinen, die an einem Tag oder einer Woche ausgeschaltet werden.

Wenn Sie eine andere Möglichkeit kennen, teilen Sie uns diese bitte über das Kommentarformular unten mit.