at (Unix)
at – komenda systemów z rodziny Uniksa używana do ustawienia wykonania jakiegoś polecenia o zadanej godzinie w przyszłości.
at pobiera ze standardowego wejścia listę poleceń i grupuje je w pojedyncze zadanie (ang. at-job), które zostaje wykonane o zadanym czasie. Po wykonaniu żądanej sekwencji poleceń at może wysłać poprzez e-mail powiadomienie, do użytkownika który operację zlecił. Listę poleceń do wykonania można wczytać z pliku zamiast standardowego wejścia.
at używa daemona atd, który cyklicznie sprawdza listę zadań, wykonując je o oznaczonym czasie. Demon ten może być tak skonfigurowany, aby wykonywał zaplanowane zadania, tylko gdy obciążenie systemu (mierzone jako load average) jest nie wyższe niż zadany próg.
Użycie
Dodanie nowego zadania
Aby dodać nowe polecenie, wystarczy za pomocą polecenia echo przekazać komendę dla at podając dodatkowo kiedy lub za ile czasu ma się wykonać. W poniższym przykładzie zostało zlecone uruchomienie skryptu foo.sh za godzinę.
$ echo 'foo.sh' | at now + 1 hour
Ten sam efekt można uzyskać w ten sposób. Może okazać się on pomocny, gdy do wykonania jest parę poleceń.
$ at now + 1 hour
at> foo.sh
at> foo2.sh
at> foo3.sh
at> ^D #(Control-D zakończy wprowadzanie komend)
Inne przykłady użycia:
$ echo 'foo.sh' | at 2017-04-30 # 30 kwietnia 2017 roku
$ echo 'foo.sh' | at now + 5 minute # za 5 minut
$ echo 'foo.sh' | at now + 1 day # jutro o tej samej porze
$ echo 'foo.sh' | at 2210 # o 22:10, jeśli dziś ta godzina minęła to wykona się jutro
Wyświetlenie zaplanowanych zadań
Polecenie atq służy do wypisania listy aktualnie zleconych zadań. W pierwszej kolumnie znajduje się identyfikator zadania, potem kolejno data zaplanowanego uruchomienia oraz osoba zlecająca. W tym wypadku user.
$ atq
44 Fri Apr 28 20:14:00 2017 a user
45 Fri Apr 28 20:19:00 2017 a user
Usunięcie zaplanowanych zadań
Gdy znane jest id zadania, to poleceniem atrm <identyfikator_zadania> można je usunąć.
$ atq
44 Fri Apr 28 20:14:00 2017 a user
45 Fri Apr 28 20:19:00 2017 a user
$ atrm 44 #usunięcie zadania o id 44
$ atq
45 Fri Apr 28 20:19:00 2017 a user
$ atrm 45 #usunięcie zadania o id 45
$ atq
$
Zobacz też
- cron
- crontab
at(1)
– strona podręcznika systemu Linux