Good to Know Database

Befehle zeitgesteuert ausführen mit at


Für den Fall, dass Sie Befehle nur einmal zu einer bestimmten Zeit ausführen wollen, stellt Ihnen Linux das Programm at zur Verfügung.

Wenn Sie zum Beispiel ein Linux-System um 20:00 Uhr neu starten wollen, können Sie dies wie folgt dem at-Daemon auftragen.

[root@centos5 ~]# at 20:00
at> shutdown -r
at> <EOT>
job 1 at 2009-06-13 20:00

Selbstverständlich können Sie diese Aufgabe auch einfach mit dem folgenden Befehl erledigen, jedoch bei einem Befehl welcher keine Ausführung zu einer bestimmten Zeit erlaubt, müssen Sie auf at zurückgreifen.

[root@centos5 ~]# shutdown -r 20:00

Beim Aufruf von at müssen Sie die Zeit angeben zu welcher der oder die Befehl(e) ausgeführt werden sollen. Danach können Sie am at-Prompt den oder die Befehl(e) eingeben welche ausgeführt werden sollen. Nachdem Sie die Eingabe abgschlossen haben, schließen Sie das at-Prompt mit der Tastenkombination STRG+D.

Für die Angabe der Zeit gibt es verschiedene Möglichkeiten welche ich hier kurz zusammenstellen möchte.

Die Angabe einer Uhrzeit kennen Sie bereits aus dem ersten Beispiel. Sollte diese Uhrzeit jedoch bereits überschritten sein, wird der Befehl am nächsten Tag zu dieser Zeit ausgeführt.

[root@centos5 ~]# at 20:00

Neben der Angabe einer Uhrzeit stehen Ihnen auch midnight (0:00), noon (12:00) und teatime (16:00) zur Verfügung.

[root@centos5 ~]# at teatime

Sie können auch eine Wartezeit festlegen nach welcher der Befehl ausgeführt werden soll. Im folgenden Beispiel wird der Befehl 10 Minuten nach der Eingabe ausgeführt. Neben der Zeiteinheit minutes stehen Ihnen noch hours, days und weeks zur Verfügung.

[root@centos5 ~]# at now + 10 minutes

Soll der Auftrag morgen zu einer bestimmten Zeit ausgeführt werden, geben Sie das Schlüsselwort tomorrow an.

[root@centos5 ~]# at 20:00 tomorrow

Wollen Sie einen Auftrag erst in drei Tagen zu einer bestimmten Zeit ausführen, können Sie dies durch den folgenden Befehl realisieren.

[root@centos5 ~]# at 20:00 + 3 days

Alternativ können Sie auch das Datum angeben an welchem der Auftrag ausgeführt werden soll. Hierfür stehen Ihnen mehrere Möglichkeiten zur Verfügung.

Sie können das Datum in der Schreibweise MM/DD/YYYY oder YYYY-MM-DD angeben.

[root@centos5 ~]# at 20:00 06/16/2009

[root@centos5 ~]# at 20:00 2009-06-16

Oder Sie geben den englischen Monatsnamen und den Tag an.

[root@centos5 ~]# at 20:00 jun 16

Das Jahr können Sie wenn nötig auch angeben.

[root@centos5 ~]# at 20:00 jun 16 2009

Nachdem Sie jetzt einen Überblick über die Möglichkeiten der Zeitangabe erhalten haben, sollten Sie sich mit den Verwaltungsfunktionen von at vertraut machen.

Wenn Sie überprüfen wollen ob Aufträge bevorstehen, können Sie entweder die Option -l oder den Befehl atq verwenden.

[root@centos5 ~]# at -l
1       2009-06-13 20:00 a root

[root@centos5 ~]# atq
1       2009-06-13 20:00 a root

Mit Hilfe der Job-ID (siehe erste Spalte) und der Option -d oder dem Befehl atrm können Sie einen Auftrag löschen.

[root@centos5 ~]# at -d 1

[root@centos5 ~]# atrm 1

Einzelnen Benutzern können Sie den Zugriff auf at mit der Datei /etc/at.deny verbieten. Dazu müssen Sie jeweils einen Benutzernamen pro Zeile in die Datei eintragen. Alternativ können Sie die Datei /etc/at.allow erstellen und dort alle Benutzer eintragen welche Zugriff auf at haben sollen. Sobald die Datei /etc/at.allow existiert, wird die Datei /etc/at.deny ignoriert und nur die Benutzer aus der Datei /etc/at.allow können at verwenden.


Dieser Eintrag wurde am 13.06.2009 erstellt.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_7_644.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer