GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Planen von Aufgaben mit dem Linux-Cron-Befehl

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!


Linux
  1. Diagnostizieren Sie Verbindungsprobleme mit dem Linux-Ping-Befehl

  2. Überwachen Sie Befehle und Aufgaben mit dem Linux-Überwachungsbefehl

  3. Ersetzen Sie intelligente Anführungszeichen durch den Linux-Befehl sed

  4. Erste Schritte mit dem Linux-tac-Befehl

  5. Erste Schritte mit dem Linux-cat-Befehl

Linux-IP-Befehl mit Beispielen

15 Linux-PS-Befehl mit Beispielen

So automatisieren Sie Aufgaben mit Cron-Jobs in Linux

So finden Sie Dateien mit dem fd-Befehl in Linux

Terminplanung mit cron &At

Der Timer-Befehl in Linux