Taskplaner 123RF ©Everydayplus
Total Page:16
File Type:pdf, Size:1020Kb
Know-how Cron-Alternativen Moderne Task-Scheduler: Fcron und Hcron Taskplaner 123RF ©everydayplus, Der Standard-Scheduler Cron Die meisten Rechner laufen nicht rund der nach dem Einschalten des Compu- um die Uhr, schon um Strom zu sparen. ters offene Routineaufgaben nachholt. ist inzwischen leicht ange- Trotzdem will man manche Aufgaben Dazu haben wir unter Fedora 29 die automatisiert in Zeiten abarbeiten, zu Scheduler Fcron und Hcron an- staubt. Mit Fcron und Hcron denen man nicht vor dem Computer hand des Programms Backup-Mana- sitzt: Es ist auf die Dauer mühsam, stän- ger auf Herz und Nieren getestet. gibt es modernere Alternati- dig das Backup manuell zu starten. Mit Die Konfiguration von Hcron behan- dem klassischen Scheduler Cron lassen delte bereits unsere Schwesterzeitschrift ven, jeweils mit spezifischen sich derartige Tasks automatisiert abwi- Raspberry Pi Geek ausführlich . Daher ckeln. Läuft allerdings zum vorgegebe- widmet sich dieser Artikel vorwiegend Anzela Minosi Vorteilen. nen Zeitpunkt der PC nicht, fällt die auto- Fcron, um zum Schluss die Vor- und matische Ausführung unter den Tisch. Nachteile beider Scheduler abzuwägen. Regelmäßige Aufgaben sollten Sie da- her lieber einem Scheduler überlassen, Listing 2 # dnf install python3 Listing 1 python3‑PyQt5 python3‑PyQt4 # dnf install gcc sendmail [...] [...] $ wget https://downloads. README $ wget http://fcron.free.fr/ sourceforge.net/project/fcronq/ FcronQ/0.5.0/FcronQ‑0.5.0.tar.bz2 Sowohl Hcron als auch Fcron eignen sich archives/fcron‑3.2.1.src.tar.gz $ tar xvf fcron‑3.2.1.src.tar.gz $ tar xvf FcronQ‑0.5.0.tar.bz2 für Computer, die nicht nonstop laufen. $ cd fcron‑3.2.1 $ cd FcronQ/Build/ Beide können Aufgaben planen und regel- $ ./configure $ make all $ make install‑user mäßig ausführen, für Fcron gibt es dazu so- $ gmake [...] [... für Root einrichten ...] gar ein komfortables grafisches Frontend. # gmake install # make install 94 www.linux-user.de 09.2019 Cron-Alternativen Know-how Installation dort die Variable editor an. Zusätzlich lässt sich bestimmen, wer Fcron benut- Für Hcron erhalten Sie auf der Projekt- zen darf (/etc/fcron.allow und /etc/ webseite RPM- und DEB-Pakete, die Sie fcron.deny). In der Standardeinstellung nach dem Herunterladen bequem über dürfen alle Benutzer auf Fcron zugreifen. die jeweilige Paketverwaltung ins Sys- Auf der Konsole legen Sie dann mit tem einbinden. dem Befehls fcrontab ‑e einen Task an. Fcron dagegen lässt sich nur manuell Fcron öffnet nun im konfigurierten Editor installieren (Listing 1) und benötigt zum eine Datei, in der Sie die Tasks bearbei- Funktionieren den Compiler GCC sowie ten, auskommentieren, erstellen oder Sendmail. Es gibt auch ein grafisches löschen. Die Aufgaben folgen dabei der Frontend namens FcronQ , das auf das Struktur Optionen Häufigkeit Befehl. GUI-Framework Qt zurückgreift. Demzu- Die Tabelle Fcrontab-Optionen fasst folge müssen Sie dafür die Qt-Bibliothek wichtige Optionen zusammen. Beginnt für Python 3 sowie Python 3 selbst ein- eine Option mit einem Ausrufezeichen !, Dateien zum Artikel richten (Listing 2, erste Zeile). Zu FcronQ gilt sie für alle folgenden Zeilen oder bis herunterladen unter gibt es ausschließlich Quellen, die Sie he- zum nächsten !reset. Ein führendes %, @ www. linux-user. de/ dl/ 42630 runterladen, entpacken und installieren oder & dagegen signalisiert, dass sie nur (Listing 2, folgende Zeilen). innerhalb der Zeile greift. Haben Sie einen der beiden Scheduler Wie oft ein Befehl verarbeitet wird, eingerichtet, aktivieren Sie den Dienst definieren Sie durch die Angabe eines Listing 3 mit administrativen Rechten und starten Zeitpunkts in der Notation Minute Stun‑ # systemctl enable fcron das Programm im Hintergrund. Im Fall de Tag Monat Wochentag. Die mög- von Hcron ändern Sie dabei in den Kom- lichen Wertebereiche finden Sie in der # systemctl start fcron mandos aus Listing 3 den Dienstenamen Tabelle Zeit unter Fcron; eine beliebige von fcron zu hcron. Angabe signalisieren Sie durch ein Stern- chen. Als Befehl tragen Sie einen Aufruf Zeit unter Fcron1 Fakten zu Fcron so ein, wie Sie ihn auch auf der Befehls- Feld Werte zeile eingeben würden. Listing 4 zeigt Minute 0 bis 59 In der Konfigurationsdatei /etc/fcron. dazu einige Beispiele. Stunde 0 bis 23 conf, stellen Sie die Pfade der Fcron- Nach dem Speichern der Fcrontab- Tag 1 bis 31 Dateien sowie einige Programmpfade Datei schlagen Sie mittels des Befehls Monat 1 bis 12 ein. Um die Tasks später mit Ihrem Lieb- fcrontab ‑l nach, welche Tasks der ak- lingseditor zu bearbeiten, passen Sie tuelle Benutzer angelegt hat. Wochentag 0 bis 7; 0 = 7 = Sonntag Fcrontab-Optionen Option Beispiel Funktion bootrun(Bool) bootrun(yes) Führt einen Job nach dem Start von Fcron oder dem Hochfahren des Systems aus. jitter(Sekunden) jitter(10) Job um bis zu 255 Sekunden verzögern, falls mehrere Jobs zur selben Zeit starten. mail(Bool) mail(yes) User per E-Mail über das Job-Ergebnis informieren. mailfrom(E‑Mail‑Adresse) mailfrom(root) Fügt Adresse oder Benutzername samt Domäne ins Von-Feld ein. mailto(E‑Mail‑Adresse) mailto(root) Fügt Adresse oder Benutzername samt Domäne ins Von-Feld ein. nice(Zahl) nice(5) Job-Priorität von ‑20 (maximal) bis 19 (minimal) variieren. nolog(Bool) nolog(yes) Im Protokoll nur Fehlermeldungen vermerken. noticenotrun(Bool) noticenotrun(yes) Informiert den User per E-Mail, falls ein Job nicht verarbeitet wurde. random(Bool) random(yes) Wie Jitter, aber mit einer Zufallszahl. reset(Bool) reset Optionseinstellungen zurücksetzen. runas(User) runas(root) Job mit den Rechten des angegebenen Users verarbeiten. runatreboot(Bool) runatreboot Job unmittelbar nach dem Hochfahren des Systems starten. runonce(Bool) runonce(true) Job nicht erneut einplanen, nach dem er einmal ausgeführt wurde. stdout(Bool) stdout(true) Konsolenausgabe, falls Fcron im Vordergrund läuft. timezone(Europe/ timezone(Zeitzone) Job-Angaben gelten für die angegebene Zeitzone. Berlin) 09.2019 www.linux-user.de 95 Know-how Cron-Alternativen Fakten zu Hcron Hcron setzt bei der Konfiguration auf Schlüssel-Wert-Paare, sodass Sie hier nicht wissen müssen, an welcher Stelle der Aufrufsyntax Sie die Minuten, Stun- den, Tage und so weiter eintragen müs- sen (siehe Tabelle Hcron-Schlüssel). Wie bei Fcron dürfen Sie auch hier Sternchen für beliebige Angaben verwenden. Die einzelnen Aufgaben heißen bei Hcron 1 Im Prinzip ähnelt Events und lassen sich übersichtlich in FcronQ mehr einem Text- gesonderten Dateien abspeichern. editor, gibt es doch für die Die Konfigurationsdateien des Parameter keine speziellen Schedulers finden Sie im Ordner /etc/ Eingabemasken. hcron/. Dort tragen Sie in der Datei hcron.allow den Benutzernamen des Benutzers ein, der Befehle aus einer GUI-Frontend FcronQ Nach einem Rechtsklick in den Eingabe- Event-Datei ausführen darf. Des Weiteren bereich legen Sie über Append einen brauchen Sie ein Verzeichnis für die Statt auf der Kommandozeile konfigu- neuen Task an. In der Spalte Status (de-) Events dieses Users. Es muss in einem rieren Sie Fcron alternativ über das grafi- aktivieren Sie einzelne Tasks durch Set- untergeordneten Ordner liegen, der die sche Frontend FcronQ, das Sie mit dem zen oder Entfernen des entsprechenden Domain als Namen hat. Diese ermitteln Aufruf FcronQ.pyw starten. Um die Feh- Häkchens. Zudem können Sie den Task Sie mit dem Befehl aus der ersten Zeile lermeldung beim Öffnen des Programms mit einem Kommentar versehen. von Listing 5. zu vermeiden, fügen Sie Ihren Benutzer Unter Variables, Options lässt sich Dann legen Sie das korrespondierende noch mit administrativen Rechten der durch einen Doppelklick eine Option ein- Events-Verzeichnis an (Zeile 3). Dort er- Gruppe Fcron hinzu: tragen. Die Spalte Frequency beherbergt zeugen Sie mithilfe des Kommandos die Zeitangaben, Command den zu ver- hcron‑event eine leere Event-Datei (in # usermod ‑a ‑G fcron User arbeitenden Befehl. Um einen Befehl zu unserem Beispiel heißt sie event‑back‑ testen, rufen Sie das Kontextmenü des up.txt), die bereits die wichtigsten Links unten im Interface sehen Sie, ob jeweiligen Tasks über die rechte Maus- Schlüssel enthält (Zeile 4). der Fcron-Dämon läuft 1. Rechts dane- taste auf und klicken auf Run. Klappt Um einen Hcron-Event für das Backup ben wählen Sie den Benutzer aus, für alles, speichern Sie den oder die neuen zu erstellen, der täglich um 21:10 Uhr ei- den Sie neue Tasks anlegen möchten. Tasks über Action | Save. nen Sicherungslauf vornimmt, tragen Sie in event‑backup.txt die in Listing 6 ge- zeigten Schlüssel und Werte ein. Nach Listing 4 dem Speichern der Datei fragt Hcron Sie, ## Sonntags und am 31. um 10:05 Uhr den Echo‑Befehl ausführen. ob es den Scheduler neu starten soll, was 5 10 31 * 7 echo '' Sie durch einen Druck auf [Y] bestätigen. ## Jeden Tag um 5:05, 5:35, 6:05, 6:35, 7:05 und 7:35 Mycommand ausführen. & 05,35 5‑7 * * * mycommand ‑u me ‑o file Listing 5 ## Täglich 20, 21, 22 und 24 Minuten nach der vollen Stunde E‑Mails 01 $ hcron‑info ‑‑fqdn abholen. 02 FQDN 20‑24~23 * * * * getmail 03 $ mkdir ‑p ~/.hcron/FQDN/ events ## Alle 30 Minuten E‑Mails abholen. 04 $ hcron‑event ~/.hcron/FQDN/ @ 30 getmails ‑all events/event‑backup.txt ## Täglich außer sonntags um 03:45 den Save‑Befehl mit niedriger 05 [... Event‑Datei befüllen ...] Priorität 06 $ hcron‑info allowed ## ausführen und den User 'jim' darüber informieren. Job nach dem 07 yes ## Hochfahren verarbeiten, falls der PC zur geplanten Zeit nicht lief. 08 $ hcron‑info es &nice(10),mailto(jim),bootrun 45 03 * * *~0 "save ‑‑our work" 09 accepted::/event‑backup.txt 96 www.linux-user.de 09.2019 Cron-Alternativen Know-how Wenn Sie später eine existierende Event- kurrenz nur durch den Befehl sleep Datei nachbearbeiten, müssen Sie ledig- gelingt. Weitere Unterschiede hebt die lich den Hcron-Scheduler mit hcron‑re‑ Tabelle Fcron vs. Cron/ Anacron hervor. load erneut starten, um Hcron die Ände- rungen mitzuteilen. Zu guter Letzt über- Fazit prüfen Sie mit den Aufrufen aus den Zei- len 6 und 8 von Listing 5 noch einmal, ob Fcron gibt sich wie Cron relativ sperrig der aktuelle Nutzer auch wirklich Hcron- in der Bedienung, während Hcron sich Events ausführen darf und um welche es durch die Verwendung von Schlüssel- sich dabei handelt.