at (Unix)

Z Wikipedii, wolnej encyklopedii

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[edytuj | edytuj kod]

Dodanie nowego zadania[edytuj | edytuj kod]

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ń[edytuj | edytuj kod]

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ń[edytuj | edytuj kod]

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ż[edytuj | edytuj kod]