Verwenden von at / atd

Im Gegensatz zu cron führt at ein Befehl/Script nur einmal zu einer vordefinierten Zeit aus. At kann, wenn denn erlaubt, von jedem Benutzer verwendet werden. Was nicht verwechselt werden sollte: Der Deamon heisst „atd“, während das Programm mit „at“ aufgerufen wird.
Bei den meisten Linux-Distributionen läuft der Deamon nicht, kann aber einfach mit

/etc/init.d/atd start

gestartet werden.

Folgende Dateien gehören zu at/atd:

/var/spool/cron/atjobs
/var/spool/cron/atspool
/proc/loadavg
/var/run/utmp
/etc/at.allow
/etc/at.deny

Der Deamon nimmt Aufträge im interaktiven Modus oder als Textdatei entgegen. Die Zeitangaben sind hierbei sehr vielfältig, wie die folgenden Beispiele zeigen.

Als erstes starten wir Morgen um 15:00Uhr zwei Scripte und übergeben „atd“ die nötigen Informationen mit Hilfe des Interaktiven Modus.

blog@X201:~$ at 15:00 tomorrow
warning: commands will be executed using /bin/sh
at> /home/blog/testscript.sh
at> /home/blog/cleanup.sh
at> <EOT>
job 1 at Wed Apr 22 15:00:00 2015

Der Eintrag <EOT> steht für „End Of Transmission“ und wurde durch das Drücken von „Strg + D“ vom Benutzer erzeugt. Also nicht „<EOT>“ eintippen.

Wenn viele Kommandos gestartet werden sollen, können diese in einer Textdatei an „atd“ übergeben werden. Die Datei mit den Kommandos heisst bei diesem Beispiel „kommando.txt“.

blog@X201:~$ at -f kommando.txt teatime tomorrow
warning: commands will be executed using /bin/sh
job 2 at Wed Apr 22 16:00:00 2015

Die Zeitangabe „teatime“ bedeutet hier „16:00Uhr“.

An der LPIC-Prüfung wird man sicher versuchen, mit anscheinend unrealistischen Zeitplänen Unsicherheit zu verbreiten.

at-Warteschlange

Mit dem Befehl „atq“ wird die aktuelle Warteschlange („q“ steht für „queue“) angezeigt. Alternativ kann eine zweite Variante verwendet werden: „at -l“ („l“ steht hier für list“).

blog@X201:~$ at -l
1    Wed Apr 22 15:00:00 2015 a blog
2    Wed Apr 22 16:00:00 2015 a blog

Berechtigungen

Die Authorisierungs-Dateien für at liegen direkt im Verzeichnis /etc. Folgendes sollte beachtet werden:

  • at.allow – sobald diese Datei existiert, dürfen nur Benutzer at nutzen, die darin gelistet sind.
  • at.deny – wenn diese Datei exisitert, jedoch keine at.allow, dann dürfen alle Benutzer cron verwenden die nicht hier gelistet sind.
  • Existiert weder eine at.allow noch eine at.deny, darf nur der Benutzer root at verwenden. Eine leere at.deny ermöglicht den Zugriff für alle Benutzer.
    ACHTUNG: Hier unterscheidet sich das Verhalten zu „cron“ – bei cron dürfen bei fehlender cron.allow und cron.deny alle Benutzer den Dienst verwenden.

 

 

 

Flattr this!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.