Timing ist alles und genau darum geht es in diesem Artikel. Zeitgesteuerte Vorgänge per at-Befehl werden vorgestellt…

Installation von at:

Der at-Befehl musste auf meinem System erst installiert werden…

  • sudo apt install at

Hallo Welt um 11:55 Uhr:

Der at-Befehl wird im Terminal so verwendet..

  • at 11:55

Nach abfeuern dieses Befehls landet man in einer Terminalabfrage, denn nun müssen natürlich der oder die Befehle eingegeben werde, die zum jeweiligen Zeitpunkt ausgeführt werden sollen. Für einen ersten kleinen Test bietet sich folgender Befehl an:

  • echo Hallo Welt
  • Abschluss der Eingabe mit Steuerung + D-Taste

Wen alles so läuft wie es laufen soll, erscheint dieser Befehl nun zur angegeben Zeit im Terminal. In meiner Testumgebung hat das leider nicht funktioniert. Die ausgewählte Zeit verstreicht und es passiert einfach mal gar nichts. Nicht so schön – also auf zur Fehlersuche…

Die Warteschlange für at:

Um sich die Warteschlange des at-Befehls anzuzeigen wird folgender Terminalbefehl genutzt:

  • atq

Es wird in meinem Fall zumindest ein at-Auftrag angezeigt. Weshalb er nicht auf der Ausgabe des Terminals landet ist nicht nachvollziehbar…Wurde der at-Dienst vielleicht nicht richtig gestartet? Am Testsystem habe ich einfach knallhart den at-Befehl als Startanwendung eingetragen und eine Neuanmeldung durchgeführt. Leider wird es dadurch auch nicht besser… Merkwürdigerweise bleiben die Aufträge auch nach dem Ausführungstermin in der Warteschlange stehen…

Die Verzeichnisse atjobs und atspool:

Die beiden für den at-Befehl wichtigen Verzeichnisse atjobs und atspool sollten sich eigentlich unter var/spool befinden. In meinem Testsystem verstecken sie sich aber im cron-Ordner. Die Probleme mit dem at-Befehl lassen sich dadurch aber nicht wirklich erklären.

Erfolg Nr. 1:

Nach einigen Experimenten ist es mir gelungen einen at-Auftrag auch erfolgreich abzusetzen.

  • sudo at 11:55
  • echo Hallo Welt
  • Abschluss der Eingabe mit Steuerung + D-Taste

Die Ausgabe erfolgt aber nicht direkt im Terminal, sondern wird als “Mail“ abgelegt. Im Terminal bekommt man nur den Hinweis: Sie haben neue Post in /var/mail/root. Wenn man diese Mail nun lesen möchte, wird folgender Befehl im Terminale abgefeuert:

  • cat /var/mail/root

Die Zeitsteuerung per at-Befehl funktioniert also zumindest. Zwar noch nicht ganz so wie erwünscht und erhofft, aber sie funktioniert. Alle weiteren Experimente mit dem at-Befehl gibt es in Teil 2 zu diesem Artikel…

Von Torsten