Zum Inhalt springen

Anacron/man

Aus Foxwiki

BESCHREIBUNG

Anacron kann zum periodischen Ausführen von Befehlen verwendet, wobei die Häufigkeit in Tagen angegeben wird

  • Im Gegensatz zu cron(8) wird nicht angenommen, dass der Rechner ununterbrochen in Betrieb ist
  • Daher kann es auch auf Rechnern, die nicht 24 Stunden täglich laufen, für regelmäßig täglich, wöchentlich oder monatlich auszuführende Aufträge verwendet werden, die normalerweise cron steuert

Bei der Ausführung liest Anacron eine Liste der Aufträge aus der Konfigurationsdatei, normalerweise /etc/anacrontab (siehe anacrontab(5))

  • Diese Datei enthält die Liste der Aufträge, die Anacron steuert
  • Jeder Auftrag gibt eine Periode in Tagen, eine Verzögerung in Minuten, einen eindeutigen Auftragsbezeichner und einen Shell-Befehl an

Bei jedem Auftrag prüft Anacron, ob dieser Auftrag in den letzten n Tagen ausgeführt wurde, wobei n die für diesen Auftrag angegebene Zeitperiode ist

  • Falls nicht, führt Anacron nach der in Minuten angegebenen Verzögerung den Shell-Befehl dieses Auftrags aus

Nachdem die Befehlsausführung beendet ist, zeichnet Anacron das Datum (ohne die Stunde) in einer speziellen Zeitstempeldatei für diesen Auftrag auf, so dass es weiß, wann dieser Auftrag wieder ausgeführt werden muss

  • Für die Zeitberechnung wird nur das Datum, aber nicht die Stunde verwendet

Wenn keine Aufträge mehr auszuführen sind, wird Anacron beendet

Anacron berücksichtigt nur Aufträge, deren Bezeichner, der in Anacrontab angegeben ist, auf irgendein Befehlszeilenargument des Auftrags passt

  • Die Befehlszeilenargumente des Auftrags können durch Shell-Platzhaltermuster angegeben werden, wobei Sie sicherstellen müssen, dass diese durch entsprechende Maskierung vor der Interpretation durch die Shell selbst geschützt werden
  • Wenn keine Befehlszeilenargumente für den Auftrag angegeben werden, ist dies gleichbedeutend mit der Angabe von * (was bewirkt, dass Anacron alle Aufträge berücksichtigt)

Außer wenn Anacron mit der Option -d aufgerufen wird (Beschreibung siehe unten), wird es beim Start per Fork in den Hintergrund verschoben und der Elternprozess wird unmittelbar beendet

Außer wenn Anacron mit den Optionen -d oder -n aufgerufen wird, startet es die Aufträge unmittelbar nachdem deren Verzögerungszeit verstrichen ist

  • Die verschiedenen Aufträge werden völlig unabhängig voneinander ausgeführt

Falls ein ausgeführter Auftrag etwas in die Standardausgabe oder Standardfehlerausgabe schreibt, werden diese Ausgaben per E-Mail an den Benutzer, unter dessen Benutzerkonto Anacron ausgeführt wird (üblicherweise root), gesendet

  • Falls in der Datei /etc/anacrontab die Umgebungsvariable MAILTO gesetzt ist, werden die Ausgaben stattdessen an die dort angegebene Adresse gesendet

Alle durch Anacron erzeugten informativen Meldungen werden an syslogd(8) gesendet, wobei die Einrichtung auf cron und die Priorität auf notice gesetzt wird

  • Alle Fehlermeldungen werden mit der Priorität error versendet

Aktive Aufträge (solche, über deren Ausführung Anacron bereits entschieden hat und die nun auf das Verstreichen der Verzögerungszeit warten, sowie Aufträge, die bereits von Anacron ausgeführt werden), sind gesperrt, so dass weitere Instanzen von Anacron diese nicht zur gleichen Zeit ausführen können

ANMERKUNGEN

Stellen Sie vor der Ausführung von Anacron sicher, dass die Einstellung der Zeitzone korrekt ist, da diese sich auf das Datum auswirkt

  • Dies erreichen Sie üblicherweise durch Setzen der Umgebungsvariable TZ oder durch Installation einer Datei /usr/lib/zoneinfo/localtime
  • In tzset(3) finden Sie weitere Informationen

Zeitstempeldateien werden für jeden in der Anacrontab aufgeführten Auftrag im Spool-Verzeichnis angelegt

  • Diese Dateien werden von Anacron niemals automatisch entfernt und sollten manuell gelöscht werden, sobald ein Auftrag nicht mehr planmäßig ausgeführt werden soll

DEBIAN-SPEZIFISCHE KONFIGURATION

Auf Debian-basierten Systemen wird Anacron jeden Tag stündlich zwischen 7.30 Uhr und 23.30 Uhr lokaler Zeit aktiviert

  • Das geschieht auf Systemen ohne Systemd über einen Cron-Auftrag und auf Systemen mit Systemd über einen Systemd-Timer
  • Bei der Aktivierung prüft Anacron, ob eventuell Aufträge übergangen worden sind
  • In solchen Fällen werden diese Aufträge nach einer kurzen Zeitspanne gestartet

Standardmäßig wird Anacron nicht stündlich aktiviert, wenn das System über Akkus mit Strom versorgt wird und keine Netzspannung angeschlossen ist

  • Dadurch soll der Energieverbrauch verringert und damit die Akkulaufzeit verlängert werden, was aber zu unerwünschten Ergebnissen führen könnte
  • Benutzer können diese Funktion deaktivieren und Anacron von der Art der Stromversorgung unabhängig ausführen lassen

In der Debian-spezifischen Dokumentation in /usr/share/doc/anacron/README.Debian finden Sie detaillierte Anweisungen, wie Sie dieses Verhalten ändern können