Alt aber gut ...
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).
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 :
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 :
Gerald am :
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 :
Und eigentlich ist es völlig egal, weil es hier um "at" geht und nicht um shutdown.
Niklas am :
folgendes in die ~/.bashrc
alias remember="zenity --info --title="Erinnerung" --display=:0 --text"
und dann:
$ at now + 10min
remember "Pizza"
^D
Dirk Deimeke am :
Keba am :
Da hab ich mir (ähnlich wie Niklas) ein kleines "Skript" gebastelt:
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 :
Bis jetzt habe ich mir einen Tea-Timer einfach per Kommandozeile gebastelt: sleep 180 ; echo -e '\a'