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
[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]- cron
- crontab
at(1)
– strona podręcznika systemu Linux