at (Unix)

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

at ist ein Unix-Befehl, der, vergleichbar mit der Funktion cron, eine zeitgesteuerte, allerdings einmalige Ausführung eines Befehls oder eines Skriptes ermöglicht.

Funktion[Bearbeiten]

Es können mehrere Befehle in die Liste von at aufgenommen werden, um sie später ausführen zu lassen. Diese Befehle in der Liste werden Jobs genannt.
Der folgende Code kompiliert um 13:37 Uhr dieses Tages eine Datei zu einer ausführbaren Datei. Wenn die Uhrzeit bereits überschritten wurde, wird der Befehl am nächsten Tag ausgeführt.

 echo "cc -o foo foo.c" | at 13:37

at kennt auch zahlreiche weitere Zeitangaben wie z. B. midnight, teatime, noon, tomorrow.

Eine Variante von at ist batch, hier wird keine Ausführungszeit übergeben. Ein mit batch übergebener Job startet dann, wenn der Load der Maschine unter einen Schwellwert (standardmäßig 1,5) fällt. Mit diesem Mechanismus kann eine gleichmäßigere Auslastung einer Maschine erreicht werden.

Es gibt verschiedene Implementationen. at arbeitet normalerweise mit dem cron-Daemon zusammen, der die Aufträge zum passenden Zeitpunkt ausführt, andere Implementationen benutzen einen Daemon namens atd, der im Hintergrund läuft, in regelmäßigen Zeitabständen die Liste der Aufträge überprüft und sie zum passenden Zeitpunkt ausführt.

Mit dem Befehl atq lassen sich die eigenen Jobs anzeigen, die mit at hinzugefügt worden sind. Sofern man als root eingeloggt ist, werden die Jobs von allen Usern des Systems angezeigt. Mit dem Befehl atrm lassen sich Jobs wiederum aus der Queue entfernen.

Geschichte[Bearbeiten]

at erschien erstmals in Unix Version 7 im Jahr 1979, es ist heute Bestandteil der cron-Implementierungen.

Eine Variante von at wurde 1993 von Thomas König entwickelt und unter die GNU General Public License gestellt.[1]

Andere Betriebssysteme[Bearbeiten]

Unter Windows NT/2000/XP steht at auch zur Verfügung, dort ist dieser Befehl jedoch mittlerweile veraltet. Stattdessen sollte der Taskplaner benutzt werden.

Einzelnachweise[Bearbeiten]

  1. Quellcode der „at.c“ Variante von Thomas König mit Hinweis zu Autoren und Lizenz

Weblinks[Bearbeiten]

  • at: execute commands at a later time – Open Group Base Specification
  • at(1): at, batch, atq, atrm: queue, examine or delete jobs for later execution – Debian GNU/Linux Ausführbare Programme oder Shell-Befehle Handbuchseite
  • at(1): at, batch: queue, examine or delete jobs for later execution – OpenBSD General Commands Manual