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ż