at - Programm auf die Sekunde genau starten

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
Kermit24
Beiträge: 277
Registriert: 29.04.2006 14:44:39

at - Programm auf die Sekunde genau starten

Beitrag von Kermit24 » 12.07.2014 09:51:55

Hallo,
wie kann ich einen Shell-Befehl auf die Sekunde genau starten. Nimmt at wirklich nur Minuten?
at 12:05:30
at 12:05.30

funktioniert beies nicht :(. In der manpage finde ich auch nichts zum Zeitformat. Geht at wirklich nicht mit Sekunden? Gibt es Alternativen, die sich genau so schnell und einfach von der Shell bedienen lassen?

Danke im Voraus,
Kermit

Benutzeravatar
4A4B
Beiträge: 926
Registriert: 09.11.2011 11:19:55
Kontaktdaten:

Re: at - Programm auf die Sekunde genau starten

Beitrag von 4A4B » 12.07.2014 10:08:24

Da gibt es noch die Option -t
-t time run the job at time, given in the format [[CC]YY]MMDDhhmm[.ss]
Sollte demnach so funktionieren:

Code: Alles auswählen

at -t 07121007.30
Bei mir wird der Befehl aber auch immer zur vollen Minute ausgeführt, auch wenn ich die Sekunden nach dem Punkt angebe :?

wanne
Moderator
Beiträge: 7462
Registriert: 24.05.2010 12:39:42

Re: at - Programm auf die Sekunde genau starten

Beitrag von wanne » 12.07.2014 10:36:05

DU kannst ein sleep in dein Script basteln.
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
Meillo
Moderator
Beiträge: 8813
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: at - Programm auf die Sekunde genau starten

Beitrag von Meillo » 14.07.2014 10:55:20

Historisch gesehen arbeitet at(1) schon immer nur (maximal) minutengenau. Man muss bedenken, dass at teilweise ueber cron(8) implementiert ist. Cron ist aber nunmal nur minutengenau, somit ist es at ebenfalls. Zudem kommen beide Programme aus einer Zeit als die Systeme keinesfalls sekundengenau reagieren konnten.


Die Option `-t' aendert nicht die Arbeitsweise von at, sondern nur die Syntax in der die Zeit eingegeben werden kann, von at's eigenem Format zu dem von touch(1).
The -t time option was added as a new capability to support
an internationalized way of specifying a time for execution
of the submitted job.
http://pubs.opengroup.org/onlinepubs/96 ... es/at.html
Use ed once in a while!

Benutzeravatar
Phineas
Beiträge: 348
Registriert: 20.06.2012 20:26:19

Re: at - Programm auf die Sekunde genau starten

Beitrag von Phineas » 14.07.2014 23:48:08

Eine Funktion für die bashrc:

Code: Alles auswählen

At(){
  [ "$1" = "-h" ] && { echo "Startet ein einfaches Kommando zu einem date-kompatiblen Zeitpunkt. Syntax: At ZEITPUNKT KOMMANDO [ARGS]"; return; }
  Seks=$(($(date -d "$1" +%s)-$(date +%s)))
  shift
  (( $Seks < 0 )) && { echo "Fehler: Zeitpunkt liegt in der Vergangenheit."; return; }
  echo "Starte '$@' in $Seks Sekunden..."
  sleep ${Seks}s && $@
}
Beispielaufruf:

Code: Alles auswählen

At 12:05:30 play Song.mp3

Antworten