at (Unix) – Wikipedia, wolna encyklopedia

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]