(execute commands at a later time)
Das Kommando at
liest Kommandos von der Standard-Eingabe oder aus einem Shell-Skript und führt sie zu einem späteren Zeitpunkt, den Sie angeben, aus. Eine so entstandene Kommandoliste läuft unter einer Auftragsnummer (Format 1 und 2)
gibt auf die Standard-Ausgabe aus, welche mit at oder batch (siehe batch) erteilten Kommandoaufträge noch nicht bearbeitet wurden (Format 3 und 4)
löscht Kommandoaufträge, die mit at oder batch erteilt wurden (Format 5)
Wenn Sie die Standard-Ausgabe und Standard-Fehlerausgabe der auszuführenden Kommandos nicht umgelenkt haben, wird Ihnen die Ausgabe von Format 1 und Format 2 mit mailx geschickt.
Die Umgebungsvariablen, das aktuelle Dateiverzeichnis, die für neue Dateien gültigen Zugriffsrechte (siehe umask) und die maximal zulässige Dateigröße (siehe ulimit) bleiben erhalten. Offene Dateien und Prioritäten werden nicht vererbt. Das Kommando trap (eingebautes Shell-Kommando zum Abfangen von Signalen) wird aufgehoben.
at schreibt die Auftragsnummer und die angegebene Ausführungszeit auf die Standard-Fehlerausgabe.
Aufträge, die mit at erteilt werden, bleiben auch dann erhalten, wenn der Auftraggeber mit exit die POSIX-Shell beendet oder das POSIX-Subsystem beendet wird. Die Aufträge müssen nicht neu gestartet werden.
Vor dem Aufruf beachten
Die Benutzerkennung muss eine Standardabrechnungsnummer für den rlogin-Zugang haben. Diese kann mit den Kommandos ADD-USER, MODIFY-USER-ATTRIBUTES oder ADD-POSIX-USER zugewiesen werden.
Wenn die Datei /usr/lib/cron/at.allow existiert, dann dürfen Sie das Kommando at nur dann aufrufen, wenn Ihre Benutzerkennung in dieser Datei steht.
Wenn die Datei /usr/lib/cron/at.allow nicht existiert, dann dürfen Sie das Kommando at nur dann aufrufen, wenn Ihre Benutzerkennung nicht in der Datei /usr/lib/cron/at.deny steht.
Wenn weder /usr/lib/cron/at.allow noch /usr/lib/cron/at.deny existieren, dann darf nur der POSIX-Verwalter at aufrufen.
Existiert z.B. nur die leere deny-Datei, so dürfen alle Benutzer at aufrufen.
Die allow- und deny-Dateien darf nur der POSIX-Verwalter anlegen und ändern. Sie enthalten pro Zeile eine Benutzerkennung.
Der cron-Dämon wird über ein rc-Skript gestartet.
Syntax
Format 1: | at[ -m][ -f skript][ -q warteschlange] -t zeit |
Format 2: | at[ -m][ -f skript][ -q warteschlange] zeitpunkt |
Format 3: | at -l[ auftragsnummer] |
Format 4: | at -l -q warteschlange |
Format 5: | at -r auftragsnummer |
Kommandos zu einem späteren Zeitpunkt ausführen
at liest die auszuführenden Kommandos aus dem angegebenen Shell-Skript. -f nicht angegeben:
Wenn sich ein Auftrag beendet hat, schickt at dem Benutzer über mailx eine entsprechende Nachricht. Dies geschieht jedoch nur dann, wenn der Auftrag nicht bereits das Senden einer Nachricht veranlasst hat.
Durch die Option -q wird die Warteschlange im Dateiverzeichnis /var/spool/cron spezifiziert, in die der Auftrag eingereiht werden soll. warteschlange kann sein:
Gibt den Ausführzeitpunkt für die Kommandos an. zeit geben Sie wie folgt an: [[CC]YY]MMDDhhmm[.SS] CC Die ersten beiden Ziffern einer Jahreszahl (Jahrhundert). YY Jahreszahl zweistellig. MM Monatsangabe zweistellig (01 bis 12) DD Angabe des Tages zweistellig (01 bis 31) hh Angabe der Stunde zweistellig (00 bis 23) mm Angabe der Minute zweistellig (00 bis 59) SS Angabe der Sekunde zweistellig (00 bis 61) |
Die Optionen sind unter Format 1 beschrieben.
Gibt den Ausführzeitpunkt für die Kommandos an. zeitpunkt geben Sie wie folgt an: zeit: ziffern[suffix] oder sondername ziffern [h]h hhmm [h]h:[m]m Eine und zwei Ziffern werden als Stunden interpretiert. Vier Ziffern werden als Stunden und Minuten interpretiert. Durch Doppelpunkt : getrennte Ziffern werden als Stunden und Minuten interpretiert. suffix am Interpretation als vor 12 Uhr mittags (abhängig von der Umgebungsvariablen LC_TIME) pm Interpretation als nach 12 Uhr mittags (abhängig von der Umgebungsvariablen LC_TIME) ohne am, pm: Interpretation im 24-Stunden-Format utc[am|pm] oder zulu[am|pm] Interpretation als UTC (Coordinated Universal Time) sondername noon (mittags), midnight (mitternachts), now (jetzt) datum: monat monat (abhängig von der Umgebungsvariablen LC_TIME) jan[uary] (Januar), feb[ruary] (Februar), mar[ch] (März), apr[il] (Aprilmay (Mai), jun[e] (Juni), jul[y] (Juli), aug[ust] (August), sep[tember] (September), oct[ober] (Oktober), nov[ember] (November), dec[ember] (Dezember), nextmonth | next tag Zahl zwischen 1 und 31, entsprechend der Länge des Monats jahr Jahreszahl, für die die Datumsangabe gelten soll wochentag (abhängig von der Umgebungsvariablen LC_TIME) mon[day] (Montag), tue[sday] (Dienstag), wed[nesday] (Mittwoch), thu[rsday] (Donnerstag), fri[day] (Freitag), sat[urday] (Samstag), sun[day] (Sonntag) nextweek | next die auf die aktuelle Woche folgende Woche spezieller_tag today (heute), tomorrow (morgen), nextday | next Die Angabe nextday (oder next datum nicht angegeben: Entspricht der Angabe today, wenn die Zeitangabe (gerundet auf die Minute) nach der aktuellen Uhrzeit liegt. Entspricht der Angabe tomorrow, wenn die Zeitangabe (gerundet auf die Minute) vor der aktuellen Uhrzeit liegt. Entspricht der Angabe now, wenn die Zeitangabe (gerundet auf die Minute) gleich der aktuellen Uhrzeit ist. +inkrement inkrement ist eine positive ganze Zahl, auf die eine der folgenden Zeiteinheiten folgen muss: minute[s] (Minute(n)), hour[s] (Stunde(n)), day[s] (Tag(e)), week[s] (Woche(n)), month[s] (Monat(e)), year[s] (Jahr(e)) |
Beispiel: at können Sie u.a. in folgenden Formen angeben: at 0815am jan 24 at 8:15am jan 24 at 5pm friday at now +1hour |
Nicht bearbeitete Aufträge ausgeben
Format 3: | at -l[ auftragsnummer] |
Format 4: | at -l -q warteschlange |
-l[ auftragsnummer]
at listet den Auftrag mit auftragsnummer auf, wenn er noch nicht bearbeitet wurde. auftragsnummer ist die Nummer, die auf die Standard-Fehlerausgabe ausgegeben wird, wenn ein Kommandoauftrag mit at, batch oder cron erteilt wird.
auftragsnummer nicht angegeben:
at listet alle Aufträge, die noch nicht bearbeitet wurden, mit ihren Auftragsnummern auf.
-l -q warteschlange
Alternativ zur auftragsnummer kann die Warteschlange angegeben werden. at listet alle Aufträge auf, die in warteschlange stehen.
Aufträge löschen
Format 5: | at -r auftragsnummer |
-r auftragsnummer
at löscht den Auftrag auftragsnummer, den Sie zuvor mit at oder batch erteilt haben. auftragsnummer ist die Nummer, die auf die Standard-Fehlerausgabe ausgegeben wird, wenn ein Kommandoauftrag mit at oder batch erteilt wird. Sie können mehrere Auftragsnummern,getrennt durch Leerzeichen, angeben. Nur der POSIX-Verwalter hat das Recht, Aufträge von anderen Benutzern zu löschen.
Fehler
Die häufigsten Fehlermeldungen sind:
Sie haben das Datum in einem falschen Format angegeben.
Sie haben ein bereits abgelaufenes Datum angegeben.
zeit liegt zwischen „now“ und „now+1hour“.
Sie dürfen at nicht aufrufen (siehe Vor dem Aufruf beachten). |
Datei
/usr/lib/cron/at.allow Liste der Benutzerkennungen mit Ausführrecht für at. In jeder Zeile steht jeweils eine Benutzerkennung. /usr/lib/cron/at.deny Liste der Benutzerkennungen ohne Ausführrecht für at. In jeder Zeile steht jeweils eine Benutzerkennung. /var/spool/cron/atjobs Dateiverzeichnis, in dem die noch nicht bearbeiteten at-Aufträge in einzelnen Dateien aufgelistet werden. Für jeden at-Auftrag gibt es eine eigene Datei mit dem Dateinamen auftragsnummer.a. |
Variable
SHELL bestimmt den Namen eines Kommandointerpreters, um den at-Auftrags aufzurufen. Ist diese Variable nicht gesetzt oder hat den Wert 0, wird sh verwendet. TZ bestimmt die Zeitzone. Der at-Auftrag wird zum Zeitpunkt -t |
Internationale Umgebung
Die folgenden Umgebungsvariablen beeinflussen die Ausführung des Kommandos at: LANG Gibt einen Standardwert für die Variablen für die internationale Umgebung an, die nicht gesetzt oder Null sind. Ist LANG nicht gesetzt oder Null, wird der entsprechende Standardwert der internationalen Umgebung verwendet. Enthält eine der Variablen eine ungültige Einstellung, verhält sich das Kommando so, als sei keine der Variablen definiert worden. LC_ALL Ist diese Variable auf einen Wert gesetzt, d. h. ist sie nicht leer, überschreibt dieser Wert die Werte aller übrigen Internationalisierungsvariablen. LC_CTYPE Legt die internationale Umgebung für die Interpretation der Byte-Folgen eines Datentexts als Zeichen fest (z.B. Singlebytezeichen im Unterschied zu Mehrbytezeichen in Argumenten und Eingabedateien). LC_TIME Legt das Format der Datums- und Zeitangaben fest, die von at geschrieben und akzeptiert werden. LC_MESSAGES Legt das Format und den Inhalt von Fehlermeldungen fest. Die hier angegebene internationale Umgebung gilt auch für informative Meldungen, die auf die Standard-Ausgabe geschrieben werden. NLSPATH Legt den Pfad der Meldungsdateien für LC_MESSAGES fest. |
Beispiel
Es soll am 1. April um 13 Uhr an der Datensichtstation tty013 das aktuelle Datum und die Zeichenkette April, April! ausgegeben werden:
CTRL+D oder @@d |
Siehe auch
batch, crontab, date, kill, mailx, nice, ps, sh, sort |