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 | Quelltext 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 entweder um 13:37 Uhr dieses, oder, falls der Befehl nach dieser Uhrzeit abgesetzt wurde, nächsten Tages eine Datei zu einer ausführbaren Datei.

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

at kennt auch zahlreiche weitere Zeitangaben wie z. B. midnight, teatime, noon oder 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.

Für gewöhnlich arbeitet at mit dem cron-Daemon zusammen, der die Aufträge zum passenden Zeitpunkt ausführt, andere Implementationen benutzen einen eigenen Daemon namens atd.

Mit dem Befehl atq lassen sich (als normaler User) die eigenen Jobs anzeigen, die mit at hinzugefügt worden sind, dem root-User werden hingegen die Jobs aller User des Systems angezeigt. Mit dem Befehl atrm lassen sich Jobs aus der Queue entfernen, wobei wieder jeder User auf seine eigenen, root hingegen auf alle Jobs Zugriff hat.

Geschichte[Bearbeiten | Quelltext 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 eine freie Lizenz gestellt.[1]

Andere Betriebssysteme[Bearbeiten | Quelltext 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.

Weblinks[Bearbeiten | Quelltext 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

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

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