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

So planen Sie Aufgaben mit at in Linux

Der atd-Daemon

Der atd-Daemon ermöglicht es Benutzern, Aufträge zu einem späteren Zeitpunkt auszuführen, z. B. „um 2:00 Uhr“. Um den atd-Daemon verwenden zu können, muss er laufen. Benutzer können bestätigen, dass atd ausgeführt wird, indem sie einfach eine Liste der laufenden Prozesse untersuchen:

$ ps aux | grep atd
daemon   4730  0.0  0.2  1420  532  ?      S  15:42  0:00   /usr/sbin/atd 
madonna  5570  0.0  0.2  3572  640  pts/2  S  16:43  0:00   grep atd

Beachten Sie, dass die siebte Spalte angibt, welchem ​​Terminal ein Prozess zugeordnet ist. Für den grep-Befehl von Blondie ist das Terminal pts/2, was sich wahrscheinlich auf eine Netzwerk-Shell oder ein grafisches Terminal innerhalb einer X-Sitzung bezieht. Beachten Sie, dass der atd-Daemon kein zugehöriges Terminal hat. Eines der charakteristischen Merkmale eines Daemons ist, dass er seine Verbindung mit dem Terminal, das ihn gestartet hat, aufgibt.

Übermittlung von Jobs mit at

Der at-Befehl wird verwendet, um Jobs an atd zu senden Daemon, der zu einem bestimmten Zeitpunkt ausgeführt werden soll. Die auszuführenden Befehle werden entweder als Skript (mit dem Befehlszeilenschalter -f) übermittelt oder direkt über stdin eingegeben. Der Standardausgang des Befehls wird an den Benutzer gesendet.

at [-f filename | -m] TIME
angegebene Skript aus
Wechseln Effekt
-f Dateiname Führen Sie das durch den Dateinamen
-m Benachrichtigen Sie den Benutzer per E-Mail, wenn Sie fertig sind, auch wenn es keine Ausgabe gibt.

Die Tageszeit kann mit HH:MM mit angehängtem „am“ oder „pm“ angegeben werden. Die Begriffe „Mitternacht“, „Mittag“ und „Teezeit“ können ebenfalls verwendet werden. (Sie haben richtig gelesen, „Teatime“.) Ein Datum kann auch in mehreren Formaten angegeben werden, einschließlich MM/TT/JJ. Die Manpage at(1) bietet viele weitere Details.

Der Wrestler Hogan möchte eine Datei ausdrucken, die die gesamte Fanpost enthält, die er erhalten hat, fanmail.txt. Er ist jedoch etwas besorgt, weil er sich den Drucker mit Ventura teilt, die den Drucker auch viel benutzt. Um einen Kampf zu vermeiden, beschließt Hogan, seinen Druck auf 2:00 Uhr morgens zu verschieben.

$ at 2:00 am
warning: commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh
at> lpr fanmail.txt
at> CTRL-D
job 7 at 2020-06-17 02:00

Weil hogan das -f nicht verwendet hat Befehlszeilenschalter, der Befehl at forderte Hogan auf, seine Befehle mit stdin (der Tastatur) einzugeben. Glücklicherweise weiß hogan, dass STRG-D, wenn es direkt von einem Terminal eingegeben wird, ein „Dateiende“ anzeigt. Alternativ hätte er den Befehl auch direkt in stdin leiten können:

$ echo "lpr fanmail" | at 2:00 am
warning: commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh
job 7 at 2003-06-17 02:00

Als nächstes bestätigt Hogan, dass sein Job mit atq registriert wurde.

$ atq
7     2003-06-17 02:00  a hogan

Schließlich erinnert sich Hogan daran, dass Ventura im Urlaub ist, damit er seine Fanpost ohne Zwischenfälle drucken kann. Er beschließt, seinen Job zu stornieren und die Datei direkt auszudrucken.

$ atrm 7 
$ atq 
$ lpr fanmail.txt

Aufgaben per Batch verzögern

Der Stapel Der Befehl wird wie der at-Befehl verwendet, um Aufgaben auf einen späteren Zeitpunkt zu verschieben. Im Gegensatz zum at-Befehl führt Batch den Befehl nicht zu einem bestimmten Zeitpunkt aus, sondern wartet stattdessen, bis das System nicht mit anderen Aufgaben beschäftigt ist, wann immer diese Zeit sein mag. Wenn der Computer nicht ausgelastet ist, wenn der Job gesendet wird, wird der Job möglicherweise sofort ausgeführt. Der atd-Daemon überwacht den Loadavg des Systems und wartet darauf, dass er unter 0,8 fällt, bevor er den Job ausführt.

Der Batch-Befehl hat eine identische Syntax wie der at-Befehl, wobei Jobs entweder mit stdin angegeben oder als Batch-Datei mit -f übermittelt werden können Befehlszeilenschalter. Wenn eine Zeit angegeben ist, verzögert Batch die Beobachtung der Maschine bis zur angegebenen Zeit. Zu diesem Zeitpunkt beginnt Batch mit der Überwachung des Loadavg des Systems und führt den Job aus, wenn das System nicht anderweitig ausgelastet ist.


Linux
  1. Linux-Tipps zur Verwendung von Cron zum Planen von Aufgaben

  2. Planen Sie eine Aufgabe mit dem Linux-Befehl at

  3. Wie beendet man einen Prozess unter Linux mit dem Befehl?

  4. So sortieren Sie Dateien in Linux mit dem Sortierbefehl

  5. So teilen Sie ISO oder Datei mit dem Befehl „Split“ in Linux

So erstellen Sie Screenshots unter Linux mit Scrot

So erstellen Sie ein Verzeichnis in Linux mit dem mkdir-Befehl

So führen Sie einen Befehl regelmäßig unter Linux mit Watch aus

So sichern Sie das Linux-Dateisystem mit dem Dump-Befehl

So automatisieren Sie tägliche Jobs unter Linux mit (at)

Planen Sie Jobs in Linux mit dem Befehl 'at'