Strona główna > Konsola, Polecenia > at – kiedy mamy coś wykonać później

at – kiedy mamy coś wykonać później

8 Październik 2009 Dodaj komentarz Go to comments

Kolejnym poleceniem jakie omówię będzie polecenie at. Polecenie to służy do kolejkowania zadań w celu ich późniejszego wykonania, więc jaka jest różnica pomiędzy nim, a poleceniem crontab? A różnica jest taka, że za pomocą polecenia at planujemy zadania do wykonania przez system jednorazowo, natomiast w crontab zadania wykonywane są cyklicznie.

Samo polecenie at służy do ustawiania zadań, ale istnieją jeszcze trzy polecenia powiedzmy pomocnicze:

atq – pokazuję kolejkę zadań

atrm – usuwa zadanie o określonym identyfikatorze z kolejki

batch – wykonuje zadanie wtedy gdy poziom obciążenia systemu spadnie poniżej wartości określonej przez atd

Przejdźmy zatem do składni polecenia at:

at [-V] [-q kolejka] [-f plik] [-mldbv] CZAS

,gdzie poszczególne parametry oznaczają:
-V pokazuje wersję at i kończy działanie
-q – jest to typ kolejki oznaczany od a do z, im wyższa litera tym większa wartość nice
-f plik – zdania zostaną załadowane z pliku
-m – wysłanie maila do użytkownika po wykonanym zadaniu
-l – jest to alias do atq
-d numer_zadania – jest to alias do atrm
-c numer_zadania – wypisuje zadania wyszczególnione w linii komend na konsolę
CZAS – tutaj przyjmowane są następujące formaty:

HH:MM – czyli podajemy dokładny czas wykonania zadnia co do minuty, jeśli jest już po określonym czasie w momencie dodawania zadania zadanie zostanie wykonane na następny dzień

midnight – północ 00:00
noon – południe 12:00
teatime – 16:00
MMDDYY lub MM/DD/YY lub MM.DD.YY – oznacza odpowiednio miesiąc (MM), dzień (DD), rok (YY)
now + jednostka czasu – dzięki temu możemy stosować planowanie zadań od teraz plus dodatkowa ilość czasu dostępna z:
minutes, hours, days, weeks
można również zastosować konstrukcję polecenia z wykorzystaniem słów today, tomorrow
kolejną możliwością określenia czasu jest podanie nazwy miesiąca oraz dnia

at -c zadanie [zadanie…] – wyświetla szczegółowe informację na temat zadania.

Teraz przyszedł czas na trochę praktyki. Na początek pokaże jak wygląda dodawanie zadania w trybie interaktywnym.

at now +3 minutes – po zatwierdzeniu polecenia pojawia się nam następujące zgłoszenie w konsoli:
at> – tutaj będziemy wpisywać polecenia jakie mają zostać wykonane w określonym wcześniej czasie;
at> echo „To idzie do pliku” > test – zatwierdzamy klawiszem enter i znów pojawia się znak zachęty programu at
at> – tym razem wciskamy ctrl+d i w ten sposób zostanie dodane zadanie do do listy zadań
A jak to wygląda na konsoli, to przedstawione jest na poniższym screenie:

Utworzenie pierwszego zadania w at

Utworzenie pierwszego zadania w at

Kolejnym przykładem będzie wyłączenie komputera o danej godzinie:

# at 18:00
at> shutdown -h now
at> (ctrl+d)

Efektem tego będzie wyłączenie komputera o godzinie 18:00. Należy zwrócić uwagę, że zadanie w powyższym przykładzie zostało wykonane z poziomu użytkownika root.

To zadanie można również wykonać na drugi sposób, a mianowicie użyć pliku z poleceniem/poleceniami:

cp -R /home/user/Dokumenty /home/kopia
shutdown -h now

Powyższy zestaw poleceń wstawiamy do pliku tekstowego. A jak użyć tego z at? Do tego trzeba wykorzystać opcję -f:

at 23:00 -f /sciezka/do/pliku/z/komendami

i po zatwierdzeniu polecenia możemy oczekiwać, że o godzinie 23:00 zostanie zrobiona kopia Dokumentów użytkownika user, a później zostanie wyłączony komputer.

Po dodaniu zadań lub zadania można przejrzeć listę zadań korzystając z polecenia:

atq lub at -l

Zostanie wówczas przedstawiona lista zadań wyglądająca podobnie do tego na obrazku:

Wyświetlenie listy zadań programu at

Wyświetlenie listy zadań programu at

To co jest wymazane jest nazwą użytkownika, który dodał zadanie.

Aby móc zobaczyć opis zadania jakie zostało „zlecone” do wykonania możemy skorzystać z opcji -c polecenia at:

at -c 1 – gdzie 1 jest numerem zadania, numer ten możemy sprawdzić przy pomocy wyżej wymienionych dwóch poleceń.

Teraz przyszedł czas na przećwiczenie usuwania zadań z listy. I znowu sprawa przedstawia się bardzo prosto i możemy to wykonać w następujący sposób:

atrm numer_zadania
lub
at -d numer_zadania

Ostatnim elementem jako można przećwiczyć jest polecenia batch. Owo polecenie nie przyjmuje żadnych parametrów, natomiast po zatwierdzeniu jego w konsoli zgłasza się znak zachęty programy at. Zadanie, które tam umieścimy zostanie wykonane wtedy, gdy obciążenie systemu będzie poniżej wartości 1.5 lub wartości zdefiniowanej przy starcie atd. Tworzenie nowego zadania z wykorzystaniem batch wygląda następująco:

batch
at> cp -R /home/user/Dokumenty /home/kopia
at> (ctrl+d)

Przy średnim obciążeniu komputera poniżej 1.5 zostanie wykonane zadanie przez nas zadane.

Jak zwykle zachęcam do przeczytania podręcznika man (polecenie: man at) i napisania stosownych komentarzy!

  1. Anonim
    8 Lipiec 2015 o 0:26

    dziękuję

  1. No trackbacks yet.

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s

%d bloggers like this: