Skip to content

Alt aber gut ...

linux Ein Dienst auf Linux- und Unixsystemen, der fast in Vergessenheit geraten ist, ist atd. Die man-Page ist von November 1996, was aber der Nützlichkeit des Programms keinen Abbruch tut.

Mit at können Programme oder Skripte oder Kommandos, anders als bei Cron, einmalig zu einer bestimmten Zeit ausgeführt werden. Bei Ubuntu muss dazu das Paket "at" installiert sein.

Die Syntax ist sehr einfach, echo "/sbin/shutdown -h now" | at 12:00, es wird also ein Befehl von der Standard-Eingabe gelesen und zur angegebenen Zeit von /bin/sh (Achtung: Bei Ubuntu ist das ein Link auf /bin/dash) ausgeführt.

Mittels atq kann man sich alle eigenen Befehle ausgeben lassen, die derzeit in der Warteschlange sind, root kann die Befehle aller User sehen:
23 Sun Nov 7 12:00:00 2010 a dirk
Der Job mit der ID 23 wird am Sonntag um zwölf Uhr ausgeführt. Er gehört zur Queue (Warteschlange) "a" und dem User "dirk".

atrm 23 löscht den Job wieder.

Das at-Kommando versteht unterschiedlichste Zeit und Datumsangaben, auf der Wikiseite bei ubuntuusers.de sind einige davon ausgeführt. Ich möchte hier auf eine weitere Möglichkeit hinweisen, man kann mit -t ein Datum im Format [[CC]YY]MMDDhhmm[.ss] übergeben, wobei CC für das Jahrhundert, YY für das Jahr, MM für den Monat, DD für den Tag, hh für die Stunde, mm für die Minute und ss für die Sekunde steht.

Ein weiteres schönes Kommando zur Benutzung von atd ist das Kommando batch, es fügt ein Programm zur Warteschlange hinzu und das wird erst ausgeführt, wenn die Last (load) des Systems unter 1.5 sinkt (dieser Wert kann beim Start des at-Daemons angegeben und verändert werden).

Trackbacks

nachtnebel am : nachtnebel via Twitter

Vorschau anzeigen
#Open-Source: Alt aber gut ... http://dlvr.it/88DmB

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Mathias am :

*Schön, dass die graue Maus mal wieder ans Lich geholt wird. „Shutdown“ war nun aber kein gutes Beispiel, hier würde ich die eingebaute Zeitsteuerung nutzen. Die informiert die anderen Anewnder dann auch mehrmals, dass demnächst Schluss ist und sie sich ggfs abmelden sollten, bevor der Server herunterfährt. Aber umfangreiche Downloads oder Kopierjobs lassen sich mit at wunderbar auf Zeiten verschieben, da ihre Netz-/CPU-Last niemanden stört.

In freiesMagazin gab es dazu vor zwei Jahren auch einen guten Artikel zur Benutzung („at - ein (fast) vergessenes Helferlein“, fM 10/2008) und einen mit Beispielen aus der Praxis („at - Beispiele aus dem Alltag“, fM 11/2008).

Dirk Deimeke am :

*Danke für die Links. Die meisten Menschen, die ich kenne, nutzen Ubuntu als Single User System, da lohnt sich die Erinnerung von shutdown nicht. Auf Multinutzer-Systemen gebe ich Dir aber natürlich Recht.

Gerald am :

*Dass shutdown kein gutes Beispiel ist, wurde schon erwähnt. shutdown -h ist ein noch schlechteres Beispiel, denn es entspricht im Unix dem init 0.

Das bedeutet: Fahre das OS herunter, reboote ins BIOS und warte ("halte") dort auf Benutzereingabe.

Die meisten (für Windows erzeugten) PCs machen zwar trotzdem ein Poweroff, aber nicht alle. Mein Notebook bleibt z.B. eingeschaltet mit schwarzem Schirm stehen.

Das richtige Kommando für Poweroff ist shutdown -P; das funktioniert sicher wie gewünscht!

Dirk Deimeke am :

*"shutdown -h" fährt auf allen Kisten, mit denen ich zu tun habe, die Maschine komplett runter, inklusive ausschalten. Das setzt voraus, dass die Systeme entsprechend konfiguriert sind und die meisten sind es. Laut manpage ist die "Entscheidung" der Maschine überlassen.

Und eigentlich ist es völlig egal, weil es hier um "at" geht und nicht um shutdown.

Niklas am :

*Eine eventuell sinnvollere Anwendung wäre die Erinnerung an beinahe verbranntes zweidimensionales Essen:

folgendes in die ~/.bashrc
alias remember="zenity --info --title="Erinnerung" --display=:0 --text"

und dann:
$ at now + 10min
remember "Pizza"
^D

Keba am :

*Hatten wir neulich mal im Planeten, glaub ich.

Da hab ich mir (ähnlich wie Niklas) ein kleines "Skript" gebastelt:

CODE:
## reminder
function remind () {
    echo "notify-send \"Reminder\" \"$1\"" | at $2 $3 2> /dev/null
}
alias 'r'='remind'


r Pizza now+10min auf der Shell und alles ist gut. Ob man nun zenity oder libnotify benutzt, ist wohl Geschmachssache. In letzter Zeit ist mir aber auf jeden Fall keine Pizza mehr verbrannt :-)

Grüße, Keba.

PS: Wow, die Codebox sieht auch etwas groß aus. Der Zeilenabstand könnte vllt. "etwas" kleiner…

Dirk Deimeke am :

*Das mit der Grösse ist kein Problem.

Bis jetzt habe ich mir einen Tea-Timer einfach per Kommandozeile gebastelt: sleep 180 ; echo -e '\a'

Kommentar schreiben

Gravatar, Favatar, Pavatar, Identica, Twitter, MyBlogLog Autoren-Bilder werden unterstützt.
BBCode-Formatierung erlaubt
Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
:'(  :-)  :-|  :-O  :-(  8-)  :-D  :-P  ;-) 
Formular-Optionen