Könnte jemand einige Beispielverwendungen für den at
Befehl bereitstellen? Ich finde das man
super verwirrend.
$ man at
Wenn wir beispielsweise in 10 Minuten einen Befehl ausführen wollten, kann dies mit at
? (und ohne sleep
)
Die Zeitangabe für "in 10 Minuten ab jetzt" ist now +10 minutes
. Zum Beispiel,
echo 'open ~' | at now +10 minutes
Das System ist jedoch at
in macOS standardmäßig deaktiviert, wie in der at
Manpage erwähnt:
IMPLEMENTATION NOTES
Note that at is implemented through the launchd(8) daemon periodically
invoking atrun(8), which is disabled by default. See atrun(8) for infor-
mation about enabling atrun.
Die atrun
Manpage sagt, dass Sie laufen müssen
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist
Ich verwende den
at
Befehl, wenn ich Daten stark verarbeiten muss, die ich nachts ausgeführt haben möchte, wenn ich nicht hinter meinem Computer bin. Natürlich könnte ich gleich nach meiner Abreise mit dem Prozess beginnen, aber das vergesse ich gerne.Das Ergebnis des Befehls unterscheidet sich nicht von der regulären Ausführung des Skripts oder Befehls.
@ Bernhard
Was es tut
Auszug aus at
der Manpage
NAME
at, batch, atq, atrm - queue, examine or delete jobs for later execution
DESCRIPTION
at and batch read commands from standard input or a specified file
which are to be executed at a later time, using /bin/sh.
Verwendung
Die Verwendung der Tools:
Usage: at [-V] [-q x] [-f file] [-mldbv] timespec ...
at [-V] [-q x] [-f file] [-mldbv] -t time
at -c job ...
atq [-V] [-q x]
atrm [-V] job ...
batch
at
enthält 4 Befehle ( at
, atq
, atrm
, und batch
). Sie verwenden at
und , batch
um die Jobs zu planen, atq
um zu sehen, was geplant ist, und atrm
um einen Job zu entfernen, bevor er ausgeführt wird.
$ at -f <cmd> timspec
Zeitangabe
Die Zeit für die Ausführung des at-Jobs kann auf verschiedene Arten angegeben werden.
Auszugsformular auf der Manpage
At erlaubt recht komplexe Zeitangaben und erweitert damit den POSIX.2-Standard. Es akzeptiert Zeiten im Format HH:MM, um einen Job zu einer bestimmten Tageszeit auszuführen. (Falls diese Zeit bereits vergangen ist, wird der nächste Tag angenommen.) Sie können auch Midnight, Noon oder Teatime (4pm) spezifizieren und Sie können eine Tageszeit mit dem Suffix AM oder PM für den Betrieb am Morgen haben oder am Abend. Sie können auch angeben, an welchem Tag der Job ausgeführt werden soll, indem Sie ein Datum im Format Monat-Tag mit einem optionalen Jahr oder ein Datum im Format MMTT[CC]JJ, MM/TT/[CC]JJ angeben. TT.MM.[CC]JJ oder [CC]JJ-MM-TT. Die Angabe eines Datums muss der Angabe der Uhrzeit folgen. Sie können auch Zeiten wie now + count time-units angeben, wobei die Zeiteinheiten Minuten, Stunden, Tage,
Beispiele
Angenommen, Sie haben dieses Shell-Skript.
$ cat mycrontest.sh
#!/bin/bash
echo "It is now $(date +%T) on $(date +%A)"
Beispiellauf:
$ ./mycrontest.sh
It is now 18:37:42 on Friday
Probe bei Jobeinreichungen:
$ at -f mycrontest.sh 10pm tomorrow
job 14 at Sun Jul 8 22:00:00 2007
$ at -f mycrontest.sh 2:00 tuesday
job 15 at Tue Jul 10 02:00:00 2007
$ at -f mycrontest.sh 2:00 july 11
job 16 at Wed Jul 11 02:00:00 2007
$ at -f mycrontest.sh 2:00 next week
job 17 at Sat Jul 14 02:00:00 2007
Dank an @slm
clozach