37.2. At und Batch

Während mit Cron und Anacron wiederkehrende Tasks geplant werden, wird mit dem Befehl at eine einmalige Aufgabe zu einer bestimmten Zeit geplant. Der Befehl batch wird zur Planung eines einmaligen Tasks verwendet, der ausgeführt wird, wenn die durchschnittliche Belastung des Systems unter 0.8 liegt.

Um at oder batch verwenden zu können, muss das at RPM Paket installiert und der atd Dienst ausgeführt werden. Mit dem Befehl rpm -q at können Sie feststellen, ob das Paket installiert wurde, und mit dem Befehl /sbin/service atd status stellen Sie fest, ob der Dienst ausgeführt wird.

37.2.1. Konfigurieren von At-Jobs

Um einen einmaligen Job zu einem bestimmten Zeitpunkt zu planen, geben Sie den Befehl at time ein, wobei time der Zeitpunkt ist, an dem der Befehl ausgeführt werden soll.

Das Argument time kann wie folgt aussehen:

Es muss zuerst die Zeit und anschließend das fakultative Datum festgelegt werden. Weitere Informationen über das Zeitformat finden Sie in der /usr/share/doc/at-<version>/timespec Textdatei.

Nach der Eingabe des Befehls at und des Zeit- arguments erscheint der at> Prompt. Geben Sie den Befehl ein, drücken Sie die [Enter-Taste], und geben Sie anschließend Strg-D ein. Es können mehrere Befehle festgelegt werden, indem Sie nach jedem eingegebenen Befehl die [Enter-Taste] drücken. Nachdem Sie alle Befehle eingegeben haben und die [Enter-Taste] gedrückt haben, geben Sie in einer leeren Zeile Strg-D ein. Alternativ kann ein Shell-Skript am Prompt eingegeben werden, indem nach jeder Zeile im Skript die [Enter-Taste] gedrückt und zum Beenden Strg-D in eine leere Zeile eingegeben wird. Ist ein Skript eingegeben, ist die verwendete Shell die Shell, die in der SHELL Umgebung des Benutzers eingestellt ist, die Anmeldeshell des Benutzers oder /bin/sh (je nachdem, was zuerst gefunden wird).

Ausgaben der Befehle oder Skripten werden an den Benutzer gemailt.

Mit dem Befehl atq können Sie anstehende Jobs anzeigen. Im Abschnitt 37.2.3 finden Sie weitere Informationen.

Die Verwendung des Befehls at kann eingeschränkt werden. Im Abschnitt 37.2.5 finden Sie weitere Einzelheiten.

37.2.2. Konfigurieren von Batch Jobs

Um einmalige Tasks auszuführen, wenn die durchschnittliche Belastung des Systems unter 0.8 liegt, verwenden Sie den Befehl batch command.

Nach der Eingabe des Befehls batch erscheint der at> Prompt. Geben Sie den Befehl zum Ausführen ein, drücken Sie die [Enter-Taste] und geben Sie Strg-D ein. Es können mehrere Befehle festgelegt werden, indem Sie nach jedem eingegebenen Befehl die [ Enter-Taste] drücken. Nachdem Sie alle Befehle eingegeben haben und die [Enter-Taste] gedrückt haben, geben Sie in einer leeren Zeile Strg-D ein. Alternativ kann ein Shell-Skript am Prompt eingegeben werden, indem nach jeder Zeile im Skript die [Enter-Taste] gedrückt und zum Beenden Strg-D in eine leere Zeile eingegeben wird. Ist ein Skript eingegeben, ist die verwendete Shell die Shell, die in der SHELL Umgebung des Benutzers eingestellt ist, die Anmeldeshell des Benutzers oder /bin/sh (je nachdem, was zuerst gefunden wird). Sobald die durchschnittliche Belastung des Systems unter 0.8 liegt, wird der Satz von Befehlen und Skripten ausgeführt.

Ausgaben der Befehle oder Skripten werden an den Benutzer gemailt.

Mit dem Befehl atq können Sie anstehende Jobs anzeigen. Im Abschnitt 37.2.3 finden Sie weitere Informationen.

Die Verwendung des Befehls batch kann eingeschränkt werden. Im Abschnitt 37.2.5 finden Sie weitere Einzelheiten.

37.2.3. Anzeigen von anstehenden Jobs

Um anstehendeat und batch Jobs zu sehen, verwenden Sie den Befehl atq. Er zeigt eine Liste der anstehenden Jobs, wobei jeder einzelne Job in einer Zeile erscheint. Jede Zeile wird wie folgt dargestellt: Jobnummer, Datum, Stunde, Jobklasse und Benutzername. Die Benutzer können nur ihre eigenen Jobs sehen. Führt ein root den Befehl atq aus, werden alle Jobs aller Benutzer angezeigt.

37.2.4. Zusätzliche Optionen der Befehlszeile

Zusätzliche Befehlszeilen-Optionen für at und batch enthalten:

OptionBeschreibung
-fLiest die Befehle oder Shell-Skripten von einer Datei anstatt sie am Prompt festzulegen.
-mVerschickt eine Mail an den Benutzer, wenn der Job abgeschlossen ist.
-vZeigt die Zeit an, wann der Job ausgeführt wird.

Tabelle 37-1. at und batch Befehlszeilen-Optionen

37.2.5. Zugriffskontrolle für At und Batch

Mit den Dateien /etc/at.allow und /etc/at.deny kann der Zugriff auf die Befehle at und batch eingeschränkt werden. In jeder Zeile dieser beiden Zugriffskontroll-Dateien steht ein Benutzername. Es dürfen in keiner der beiden Dateien Leerstellen eingegeben werden. Der at Daemon (atd) muss nicht erneut gestartet werden wenn die Zugriffskontroll-Dateien geändert wurden. Die Zugriffskontroll-Dateien werden immer dann gelesen, wenn der Benutzer versucht, den Befehl at oder batch auszuführen.

Die Befehle at und batch können jederzeit, unabhängig von den Zugriffskontroll-Dateien von einem root-Benutzer ausgeführt werden.

Wenn die Datei at.allow vorhanden ist, können nur die in dieser Datei aufgelisteten Benutzer die Befehle at oder batch ausführen, und die Datei at.deny wird ignoriert.

Ist die Datei at.allow nicht vorhanden, kann keiner der in der Datei at.deny aufgelisteten Benutzer die Befehle at oder batch verwenden.

37.2.6. Starten und Beenden des Dienstes

Um den at Dienst zu starten, verwenden Sie den Befehl /sbin/service atd start, um ihn zu beenden den Befehl /sbin/service atd stop. Es empfiehlt sich, den Dienst während des Bootens zu starten. Im Kapitel 21 finden Sie weitere Details über das automatische Starten des Cron-Dienstes während des Bootens.