Advertisements

Verwenden Sie Anacron für eine bessere Crontab

Im Jahr 2021 gibt es mehr Gründe, warum Menschen Linux lieben als je zuvor. In dieser Serie werde ich 21 verschiedene Gründe nennen, um Linux zu verwenden. Automatisierung ist einer der besten Gründe, Linux zu verwenden.

Eines meiner Lieblingsdinge an Linux ist seine Bereitschaft, für mich zu arbeiten. Anstatt sich wiederholende Aufgaben auszuführen, die meine Zeit verschlingen oder fehleranfällig sind oder die ich wahrscheinlich vergesse, plane ich Linux so ein, dass es sie für mich erledigt.

Vorbereitung auf die Automatisierung

Der Begriff „Automatisierung“ kann ebenso einschüchternd wie ansprechend sein. Ich finde es hilft, es modular anzugehen.

1. Was möchten Sie erreichen?

Überlegen Sie zunächst, welches Ergebnis Sie erzielen möchten. Versehen Sie Bilder mit Wasserzeichen? Entfernen von Dateien aus einem überladenen Verzeichnis? Führen Sie eine Sicherung wichtiger Daten durch? Definieren Sie die Aufgabe klar für sich, damit Sie wissen, worauf Sie zielen. Wenn Sie eine Aufgabe jeden Tag erledigen, viel weniger als einmal am Tag, dann könnte dies ein Kandidat für die Automatisierung sein.

2. Lernen Sie die Anwendungen kennen, die Sie benötigen

Weitere Linux-Ressourcen

Teilen Sie große Aufgaben in kleine Komponenten auf und lernen Sie, wie Sie jedes Ergebnis manuell, aber auf wiederholbare und vorhersehbare Weise erzeugen. Vieles von dem, was unter Linux getan werden kann, kann skriptgesteuert werden, aber es ist wichtig, Ihre aktuellen Einschränkungen zu kennen. Es ist ein himmelweiter Unterschied zwischen dem Erlernen der automatischen Größenänderung mehrerer Bilder, damit sie bequem per E-Mail versendet werden können, oder der Verwendung von maschinellem Lernen, um aufwendige Grafiken für Ihren wöchentlichen Newsletter zu erstellen. Eines dieser Dinge kann man an einem Nachmittag lernen und das andere kann Jahre dauern. Wir müssen jedoch alle irgendwo anfangen, also fangen Sie einfach klein an und suchen Sie immer nach Verbesserungsmöglichkeiten.

3. Automatisieren

Verwenden Sie ein Automatisierungstool unter Linux, um dies regelmäßig zu tun. Dies ist der Schritt, den dieser Artikel behandelt!

Um etwas zu automatisieren, benötigen Sie ein Skript, das eine Aufgabe automatisiert. Beim Testen ist es am besten, die Dinge einfach zu halten. Die Aufgabe, die dieser Artikel automatisiert, besteht darin, eine Datei namens . zu erstellen hello in dem /tmp Verzeichnis:

#!/bin/sh

touch /tmp/hello

Kopieren Sie dieses einfache Skript, fügen Sie es in eine Textdatei ein und benennen Sie es example.

Cron

Die integrierte Automatisierungslösung, mit der jede Linux-Installation mitgeliefert wird, ist das Cron-System. Linux-Benutzer neigen dazu, Cron allgemein als die Methode zu bezeichnen, mit der Sie eine Aufgabe planen (normalerweise als “Cron-Job” bezeichnet), aber es gibt mehrere Anwendungen, die die Funktionalität von Cron bereitstellen. Am vielseitigsten ist Cronie; der Vorteil ist, dass es funktioniert nicht Gehen Sie davon aus, dass Ihr Computer immer eingeschaltet ist, wie dies bei historischen Cron-Anwendungen für Systemadministratoren der Fall ist.

Überprüfen Sie, welches Cron-System Ihre Linux-Distribution bereitstellt. Wenn es sich um etwas anderes als Cronie handelt, können Sie Cronie wahrscheinlich aus dem Software-Repository Ihrer Distribution installieren. Wenn Ihre Distribution kein Paket für Cronie hat, können Sie das alte verwenden anacron Paket statt. Der anacron Befehl ist in cronie enthalten. Unabhängig davon, wie Sie ihn erwerben, möchten Sie sicherstellen, dass Sie den Befehl haben anacron Befehl auf Ihrem System verfügbar, bevor Sie fortfahren. Anacron erfordert möglicherweise Administrator-Root-Berechtigungen, abhängig von Ihrem Setup.

$ which anacron
/usr/sbin/anacron

Die Aufgabe von Anacron besteht darin, sicherzustellen, dass Ihre Automatisierungsjobs regelmäßig ausgeführt werden. Dazu prüft anacron, wann ein Job das letzte Mal ausgeführt wurde und wie oft Sie ihm gesagt haben, dass er Jobs ausführen soll.

Angenommen, Sie legen anacron so fest, dass alle fünf Tage ein Skript ausgeführt wird. Jedes Mal, wenn Sie Ihren Computer einschalten oder aus dem Ruhezustand reaktivieren, scannt anacron seine Protokolle, um festzustellen, ob der Job ausgeführt werden muss. Wenn ein Job vor fünf oder mehr Tagen ausgeführt wurde, führt Anacron den Job aus.

Zeitgesteuerte Aufgaben

Viele Linux-Systeme werden mit einigen Wartungsaufgaben für Cron geliefert. Ich mag meine Jobs getrennt von den Systemjobs, also erstelle ich ein Verzeichnis in meinem Home-Verzeichnis. Insbesondere gibt es einen versteckten Ordner namens ~/.local (“lokal” in dem Sinne, dass es für Ihr Benutzerkonto und nicht für Ihr “globales” Computersystem angepasst ist), also erstelle ich das Unterverzeichnis etc/cron.daily um das übliche Zuhause von Cron auf meinem System zu spiegeln. Außerdem müssen Sie ein Spool-Verzeichnis erstellen, um zu verfolgen, wann Jobs zuletzt ausgeführt wurden.

$ mkdir -p ~/.local/etc/cron.daily ~/.var/spool/anacron

Sie können jedes Skript, das Sie regelmäßig ausführen möchten, in das ~/.local/etc/cron.daily Verzeichnis. Kopiere das example Skript jetzt in das Verzeichnis und markieren es mit dem Befehl chmod als ausführbar.

$ cp example ~/.local/etc/cron.daily
$ chmod +x ~/.local/etc/cron.daily/example

Als nächstes richten Sie anacron so ein, dass alle Skripte ausgeführt werden, die sich im ~/.local/etc/cron.daily Verzeichnis.

Anacron

Standardmäßig wird ein Großteil des Cron-Systems als Domäne des Systemadministrators betrachtet, da es häufig für wichtige Aufgaben auf niedriger Ebene verwendet wird, wie das Rotieren von Protokolldateien und das Aktualisieren von Zertifikaten. Die in diesem Artikel gezeigte Konfiguration richtet sich an einen normalen Benutzer, der persönliche Automatisierungsaufgaben einrichtet.

Um anacron für die Ausführung Ihrer Cron-Jobs zu konfigurieren, erstellen Sie eine Konfigurationsdatei unter /.local/etc/anacrontab:

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
1  0  cron.mine    run-parts /home/tux/.local/etc/cron.daily/

Diese Datei weist anacron an, alle ausführbaren Skripte (run-parts) gefunden in ~/.local/etc/cron.daily jeden Tag (d. h. täglich) mit einer Verzögerung von null Minuten. Manchmal werden einige Minuten Verzögerung verwendet, damit Ihr Computer nicht gleich nach dem Anmelden mit allen möglichen Aufgaben konfrontiert wird. Diese Einstellungen sind jedoch zum Testen geeignet.

Der cron.mine value ist ein beliebiger Name für den Prozess. I nenne es cron.mine aber du könntest es nennen cron.personal oder penguin oder was du willst.

Bestätigen Sie Ihre anacrontab Syntax der Datei:

$ anacron -T -t ~/.local/etc/anacrontab
-S /home/tux/.var/spool/anacron

Schweigen bedeutet Erfolg.

Hinzufügen von Anacron zu .profile

Schließlich müssen Sie sicherstellen, dass anacron mit Ihrer lokalen Konfiguration ausgeführt wird. Da Sie anacron als regulärer Benutzer und nicht als Root-Benutzer ausführen, müssen Sie es an Ihre lokalen Konfigurationen weiterleiten – die anacrontab Datei, die Anacron mitteilt, was zu tun ist, und das Spool-Verzeichnis, das Anacron hilft, zu verfolgen, wie viele Tage seit der letzten Ausführung jedes Jobs vergangen sind:

anacron -fn -t /home/tux/.local/etc/anacrontab
-S /home/tux/.var/spool/anacron

Der -fn Optionen sagen Anacron zu ignorieren Zeitstempel, was bedeutet, dass Sie es zwingen, Ihren Cron-Job auszuführen, egal was passiert. Dies dient ausschließlich zu Testzwecken.

Testen Sie Ihren Cron-Job

Nachdem alles eingerichtet ist, können Sie den Job testen. Sie können dies technisch ohne Neustart testen, aber es ist am sinnvollsten, einen Neustart durchzuführen, da dies darauf ausgelegt ist, unterbrochene und unregelmäßige Anmeldesitzungen zu verarbeiten. Nehmen Sie sich einen Moment Zeit, um Ihren Computer neu zu starten, sich anzumelden und dann nach der Testdatei zu suchen:

$ ls /tmp/hello
/tmp/hello

Angenommen, die Datei existiert, wurde Ihr Beispielskript erfolgreich ausgeführt. Sie können jetzt die Testoptionen aus entfernen ~/.profile, und belassen Sie dies als Ihre endgültige Konfiguration:

anacron -t /home/tux/.local/etc/anacrontab
-S /home/tux/.var/spool/anacron

Verwendung von Anacron

Sie haben Ihre persönliche Automatisierungsinfrastruktur konfiguriert, sodass Sie jedes beliebige Skript, das Ihr Computer für Sie verwalten soll, in das ~/.local/etc/cron.daily Verzeichnis und es wird wie geplant ausgeführt.

Es liegt an Ihnen, wie oft Jobs ausgeführt werden sollen. Ihr Beispielskript wird einmal täglich ausgeführt. Das hängt natürlich davon ab, ob Ihr Computer an einem bestimmten Tag eingeschaltet und wach ist. Wenn Sie Ihren Computer am Freitag verwenden, ihn aber für das Wochenende beiseite legen, wird das Skript am Samstag und Sonntag nicht ausgeführt. Am Montag wird das Skript jedoch ausgeführt, da anacron weiß, dass mindestens ein Tag vergangen ist. Sie können wöchentliche, vierzehntägige oder sogar monatliche Verzeichnisse hinzufügen ~/.local/etc eine Vielzahl von Intervallen zu planen.

So fügen Sie ein neues Intervall hinzu:

  1. Verzeichnis hinzufügen zu ~/.local/etc (zum Beispiel, cron.weekly).
  2. Fügen Sie eine Zeile hinzu zu ~/.local/etc/anacrontab um Skripte im neuen Verzeichnis auszuführen. Für ein wöchentliches Intervall wäre die Konfiguration:
    7 0 cron.mine run-parts /home/tux/.local/etc/cron.weekly/

    (mit dem 0 Wert kann optional eine Anzahl von Minuten sein, um den Start des Skripts höflich zu verzögern).

  3. Platzieren Sie Ihre Skripte in der cron.weekly Verzeichnis.

Willkommen im automatisierten Lebensstil. Es wird sich nicht so anfühlen, aber Sie werden viel produktiver werden.

Verwenden Sie Anacron für eine bessere Crontab

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to top