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

Linux-Tipps zur Verwendung von Cron zum Planen von Aufgaben

Auf Computern ist es wichtig, dass Dinge nach einem regelmäßigen und vorhersehbaren Zeitplan geschehen. Es ist wichtig, weil wir Menschen manchmal schlecht darin sind, uns daran zu erinnern, Dinge zuverlässig zu erledigen, weil wir abgelenkt sind, zu viel im Kopf haben oder im Urlaub sind. Computer sind wirklich gut darin, Dinge nach einem Zeitplan zu erledigen, aber ein Mensch muss den Computer programmieren, bevor der Computer aktiv wird.

In gewisser Weise der cron system ist eine einfache und rudimentäre Einführung in die Programmierung. Sie können Ihren Computer dazu bringen, das zu tun, was Sie wollen, indem Sie einfach eine Datei bearbeiten. Sie müssen nicht einmal wissen, wo die Datei aufbewahrt wird. Sie müssen nur einen einfachen Befehl eingeben, das "Rezept" eingeben, dem Ihr Computer folgen soll, und Ihre Arbeit speichern. Von da an führt Ihr Computer Ihre Anweisungen zur angegebenen Zeit aus, bis er aufgefordert wird, anzuhalten.

Per Design cron ist kein komplexes System. Hier ist, was Sie darüber wissen müssen.

Weitere Linux-Ressourcen

  • Spickzettel für Linux-Befehle
  • Spickzettel für fortgeschrittene Linux-Befehle
  • Kostenloser Online-Kurs:RHEL Technical Overview
  • Spickzettel für Linux-Netzwerke
  • SELinux-Spickzettel
  • Spickzettel für allgemeine Linux-Befehle
  • Was sind Linux-Container?
  • Unsere neuesten Linux-Artikel

Was ist Cron?

Der cron Befehl ist in Linux und Unix so allgegenwärtig und wurde so oft nachgeahmt und neu erfunden, dass er fast ein Oberbegriff für etwas ist, das nach einem Zeitplan passiert . Es ist eine Form der Automatisierung, und obwohl es verschiedene Implementierungen davon gibt (Dillons Cron, Vixies Cron, Chrony und andere) und Variationen wie anacron und systemd-Timer sind die Syntax und der Arbeitsablauf seit Jahrzehnten im Wesentlichen gleich geblieben.

Cron arbeitet auf einem "Spool"-System, ähnlich wie Drucker und E-Mail. Wenn Sie nicht wussten, dass Drucker und E-Mail einen Spool verwenden, ist das in Ordnung, denn der Sinn einer Spool-Datei ist, dass Sie nicht viel darüber nachdenken sollten. Auf einem Linux-System das Verzeichnis /var/spool ist als zentraler Knotenpunkt für wichtige, aber untergeordnete Dateien konzipiert, mit denen der Benutzer nicht direkt interagieren soll. Eine der in /var/spool verwalteten Spulen ist cron Tabellen oder kurz "crontab". Jeder Benutzer – Sie selbst eingeschlossen – auf einem Linux-System hat eine crontab. Benutzer können ihre eigene Crontab bearbeiten, anzeigen und entfernen. Darüber hinaus können Benutzer ihre Crontab verwenden, um Aufgaben zu planen. Der cron Das System selbst überwacht Crontabs und stellt sicher, dass jeder in einer Crontab aufgeführte Job zur angegebenen Zeit ausgeführt wird.

Cron-Einstellungen bearbeiten

Sie können Ihre Crontab mit crontab bearbeiten Befehl zusammen mit dem -e (für bearbeiten ) Möglichkeit. Standardmäßig rufen die meisten Systeme vim auf Texteditor. Wenn Sie wie ich Vim nicht verwenden, können Sie in Ihrer ~/.bashrc einen anderen Editor für sich selbst festlegen Datei. Ich habe meinen auf Emacs eingestellt, aber Sie können es auch mit Nano, Kate oder was auch immer Ihr Lieblingseditor ist versuchen. Der EDITOR Die Umgebungsvariable definiert, welchen Texteditor Sie in Ihrem Terminal verwenden, während die VISUAL Die Variable definiert, welchen Editor Sie im grafischen Modus verwenden:

export EDITOR=nano
export VISUAL=kate

Aktualisieren Sie Ihre Shell-Sitzung mit Ihren neuen Einstellungen:

$ source ~/.bashrc

Jetzt können Sie Ihre Crontab mit Ihrem bevorzugten Editor bearbeiten:

$ crontab -e

Planen Sie eine Aufgabe

Der cron System ist im Wesentlichen ein Kalendersystem. Sie können cron mitteilen wie oft ein Job ausgeführt werden soll, indem Sie fünf verschiedene Attribute verwenden:Minute, Stunde, Datum, Monat, Wochentag. Die Reihenfolge dieser Attribute ist streng und nicht unbedingt intuitiv, aber Sie können sie sich als Filter oder Masken vorstellen. Standardmäßig denken Sie vielleicht, dass alles auf immer eingestellt ist oder alle . Dieser Eintrag würde touch /tmp/hello ausführen ganzjährig zu jeder Minute zu jeder Stunde an jedem Tag:

* * * * * touch /tmp/hello

Sie können diesen allumfassenden Zeitplan einschränken, indem Sie für jedes Attribut spezifische Definitionen festlegen. Damit der Job zur halben Stunde jeder vollen Stunde ausgeführt wird, stellen Sie die Minuten auf 30 ein :

30 * * * * touch /tmp/hello

Sie können diese Anweisung weiter auf eine bestimmte Stunde einschränken. Dieser Job wird jeden Morgen um 3:30 Uhr ausgeführt:

30 3 * * * touch /tmp/hello

Sie können den Job auch nur am Ersten jedes Monats ausführen lassen:

30 3 1 * * touch /tmp/hello

Sie können einen Monat mit 1 für Januar bis 12 für Dezember einstellen, und Sie können einen Tag mit 0 für Sonntag bis 6 für Samstag einstellen. Dieser Job wird im April um 3:15 Uhr nur montags ausgeführt:

15 3 * 4 1 touch /tmp/hello

Inkremente festlegen

Alle diese Einstellungen stimmen genau mit einem Wert überein . Sie können auch cron verwenden Notation, um Jobs nach einer festgelegten Zeit auszuführen. Sie können beispielsweise alle 15 Minuten einen Job ausführen:

*/15 * * * * touch /tmp/hello

Sie könnten alle drei Tage um 10:00 Uhr einen Job ausführen:

* 10 */3 * * touch /tmp/hello

Sie könnten alle sechs Stunden einen Job ausführen:

* */6 * * * touch /tmp/hello

Cron-Kurzschrift

Modernes cron Implementierungen haben eine praktische Abkürzung für allgemeine Zeitpläne hinzugefügt. Diese sind:

  • @hourly
  • @daily
  • @weekly
  • @monthly
  • @yearly or @annually

Cronjobs auflisten

Verwenden der crontab Befehl, können Sie eine Liste Ihrer geplanten cron sehen Jobs:

$ crontab -l
15 3 * 4 1 touch /tmp/hello

Ein Crontab entfernen

Wenn Sie mit einem Crontab fertig sind, können Sie es mit -r entfernen Möglichkeit:

$ crontab -r -i

Das -i Option steht für interaktiv . Es fordert Sie zur Bestätigung auf, bevor die Datei gelöscht wird.

Was Cron kann

Es ist eine Sache zu wissen, wie man cron , aber es ist eine andere Sache zu wissen, wofür man es verwendet. Der klassische Anwendungsfall ist ein guter Backup-Plan. Wenn Ihr Computer die meiste Zeit des Tages oder den ganzen Tag und die ganze Nacht eingeschaltet ist, können Sie eine routinemäßige Sicherung einer wichtigen Partition planen. Ich führe eine Sicherungsanwendung namens rdiff-backup aus auf meiner primären Datenpartition täglich um 3:00 Uhr:

$ crontab -l | grep rdiff
* 3 * * * rdiff-backup /data/ /vault/

Eine weitere häufige Verwendung ist die Systemwartung. Auf meinem Slackware-Desktop aktualisiere ich jeden Freitagnachmittag meinen lokalen Repository-Katalog:

$ crontab -l | grep slack
* 14 * * 5 sudo slackpkg update

Ich könnte auch alle drei Tage um 15:00 Uhr ein Ansible-Skript ausführen, um meinen Downloads-Ordner aufzuräumen:

$ crontab -l | grep ansible
* 15 */3 * * ansible-playbook /home/seth/Ansible/cleanup.yaml

Eine kleine Investition in die Gesundheit Ihrer Computerumgebung kann viel bewirken. Es gibt Deduplizierungsskripte, Dateigröße und /tmp Verzeichnismonitore, Größenanpassung von Fotos, Dateiverschiebungen und viele weitere einfache Aufgaben, die Sie im Hintergrund ausführen können, um Ihr System übersichtlich zu halten. Mit cron , kann Ihr Computer auf eine Art und Weise auf sich selbst aufpassen, wie ich es mir nur in meiner physischen Wohnung wünsche.

Cron-Einstellungen merken

Abgesehen davon, sich das Warum auszudenken Sie brauchen cron , das Schwierigste an cron meiner Erfahrung nach hat sich an seine Syntax erinnert. Wiederholen Sie dies immer wieder für sich selbst, bis Sie es sich eingeprägt haben:

Minuten, Stunden, Datum, Monat, Wochentag.

Minuten, Stunden, Datum, Monat, Wochentag.

Minuten, Stunden, Datum, Monat, Wochentag.

Besser noch, laden Sie unseren kostenlosen Cheatsheet herunter, damit Sie den Schlüssel immer zur Hand haben, wenn Sie ihn am dringendsten brauchen!


Linux
  1. Planen von Aufgaben mit dem Linux-Cron-Befehl

  2. 3 Tipps zum Drucken mit Linux

  3. Linux-Tipps zur Verwendung von GNU Screen

  4. 8 Tipps für die Linux-Kommandozeile

  5. Tipps und Tricks zur Verwendung von CUPS zum Drucken unter Linux

Tipps zur Verwendung des Top-Befehls unter Linux

So automatisieren Sie Aufgaben in Linux mit Crontab

Tipps zur Verwendung von tmux

Tipps zur Verwendung des Bildschirms

So planen Sie eine Aufgabe in Plesk für Linux

Planen Sie Jobs in Linux mit dem Befehl 'at'