Schon früh auf meiner Linux-Reise lernte ich die zahlreichen Befehlszeilen-Dienstprogramme des Betriebssystems und die Art und Weise zu schätzen, wie sie normale Aufgaben optimierten. Beispielsweise erforderte die Sicherung von Anwendungen auf meinem Windows-Server häufig teure Zusatzsoftwarepakete. Im Gegensatz dazu ist tar
macht das Sichern von Linux relativ einfach und ist außerdem leistungsstark und zuverlässig.
Bei der Sicherung unseres E-Mail-Systems des Schulbezirks stand ich jedoch vor einer anderen Herausforderung. Während des Arbeitstages oder am frühen Abend konnten keine Sicherungen durchgeführt werden, da das System von Personen verwendet wurde. Das Backup musste nach Mitternacht erfolgen und zuverlässig sein. Ich war an den Windows Task-Manager gewöhnt, aber was sollte ich unter Linux verwenden? Da habe ich von cron erfahren.
Aufgaben unter Linux mit cron planen
Cron ist ein Daemon, der verwendet wird, um geplante Befehle automatisch auszuführen. Zu lernen, wie man cron verwendet, erforderte einiges an Lesen und Experimentieren, aber bald benutzte ich cron, um unseren E-Mail-Server herunterzufahren, die Daten in einer komprimierten TAR-Datei zu sichern und dann den E-Mail-Dienst um 3 Uhr morgens neu zu starten.
Die Befehle für einen Cron-Job werden auf einem Linux-System in der Datei crontab gespeichert, die normalerweise in /etc/crontab zu finden ist. Zeigen Sie den Inhalt Ihrer crontab-Datei mit $ crontab -l
an .
Bearbeiten Sie die Crontab-Datei mit $ crontab -e
.
Einige Systeme verwenden standardmäßig den Vi-Editor für die Cron-Bearbeitung. Sie können diese Einstellung mit Umgebungsvariablen überschreiben:
$ EDITOR=nano crontab -e
Dadurch können Sie den Nano-Editor verwenden, um Ihre persönliche Crontab zu bearbeiten (falls Sie noch keine haben, wird automatisch eine für Sie erstellt).
Alle crontab-Befehle haben Parameter, die mit einem Sternchen gekennzeichnet sind, bis Sie einen ganzzahligen Wert einfügen. Die erste steht für Minuten, dann Stunden, Tag des Monats, Monat des Jahres und schließlich Wochentag.
Kommentaren wird ein Hash vorangestellt. Cron ignoriert Kommentare, daher sind sie eine großartige Möglichkeit, sich selbst Notizen darüber zu hinterlassen, was ein Befehl tut und warum er wichtig ist.
Ein Beispiel-Cronjob
Angenommen, Sie möchten Ihr Home-Verzeichnis jede Woche montags um 10:00 Uhr mit clamscan auf Viren und Malware scannen. Außerdem möchten Sie Ihr Home-Verzeichnis jede Woche dienstags um 9:00 Uhr sichern. Die Verwendung von cron- und crontab-Dateien stellt sicher, dass Ihre Systemwartung jede Woche erfolgt, unabhängig davon, ob Sie daran denken, diese Dienstprogramme auszuführen oder nicht.
Bearbeiten Sie Ihre crontab-Datei so, dass sie Folgendes enthält, und verwenden Sie dabei Ihren eigenen Benutzernamen anstelle von „don“ (mein Benutzername):
# Scan my home directory for viruses
0 10 * * 1 clamscan -ir /home/don
# Backup my home directory
0 9 * * 2 tar -zcf /var/backups/home.tgz /home/don
Wenn Sie den Nano-Editor verwenden, speichern Sie Ihre Arbeit mit Strg+O um die Datei zu schreiben und Strg+X um den Editor zu verlassen. Verwenden Sie nach dem Bearbeiten der Datei crontab -l
um den Inhalt Ihrer Cron-Datei aufzulisten, um sicherzustellen, dass sie ordnungsgemäß gespeichert wurde.
Sie können Crontab-Jobs für jeden Job erstellen, der auf Ihrem System erforderlich ist. Dies nutzt den Cron-Daemon voll aus.
Planung über die Linux-Befehlszeile
Es ist kein Geheimnis, dass der schwierigste Teil von cron darin besteht, die richtigen Werte für diese führenden Sternchen zu finden. Es gibt Websites wie crontab.guru, die die Cron-Zeit dynamisch in für Menschen lesbare Übersetzungen übersetzen, und Opensource.com hat einen Cron-Spickzettel, den Sie herunterladen können, um Ihnen zu helfen, den Überblick zu behalten.
Darüber hinaus verfügen die meisten modernen Cron-Systeme über Verknüpfungen zu gängigen Werten, darunter:
@hourly
:Einmal pro Stunde ausführen (0 * * * *)@daily
:Einmal täglich ausführen (0 0 * * *)@weekly
:Einmal pro Woche ausführen (0 0 * * 0)@monthly
:Einmal im Monat ausführen (0 0 1 * *)@reboot
:Nach dem Neustart einmal ausführen
Es gibt auch Alternativen zu cron, einschließlich anacron für Jobs, die Sie regelmäßig, aber nicht nach einem bestimmten Zeitplan ausführen möchten, und at
Befehl für einmalige Jobs.
Cron ist ein nützliches Aufgabenplanungssystem und so einfach zu bedienen wie das Bearbeiten von Text. Probieren Sie es aus!