420 Poznaj Linux
Niektórzy użytkownicy mają problemy z uruchamianiem zadań at. Czasami kłopoty te są na tyle poważne, że prostsze wydaje się uruchomienie danego zadania za pomocą cron i późniejsze usunięcie go z pliku crontab.
Większość problemów związanych z usługą at bierze się z trudności w definiowaniu zadań. Proces ten jest prosty, jeśli polecenie do wykonania składa się tylko z jednego słowa, ale czasami mamy do czynienia z bardziej złożonymi zadaniami. Załóżmy, że chcemy uruchomić poniższe polecenie:
at now + 2 rainutes touch -/plik
Po naciśnięciu Enter, ujrzymy następujący komunikat:
parse error. I.ast token seen: touch
Garbled Time.
Korzystając z polecenia echo, możemy jednak „odwrócić” nasze wyrażenie i uniknąć błędu „Garbled Time”. Oto odpowiednia składnia:
echo touch -/plik | at now + 2 minutes
Jak można się było spodziewać, powyższe polecenie działa bez zarzutu i za dwie minuty w naszym katalogu zostanie utworzony plik o nazwie plik.
Z identycznym problemem spotykamy się zlecając zamknięcie sytemu o określonej porze:
echo shutdown -fr now | at now + 4 hours
Tym razem system zostanie zamknięty dokładnie 4 godziny po wydaniu polecenia.
Polecenia at akceptują godziny wpisywane w formacie qq:mm, jeśli jednak podany czas upłynął przed wydaniem polecenia, system zakłada, że chodzi o tę samą godzinę następnego dnia. Zamiast liczb można również używać słów NOON (południe), midnight (północ), teatime (podwieczorek, czyli godzina 16:00), Today (dzisiaj), tomorrow (jutro) oraz now (teraz). Dopuszcza się również stosowanie oznaczeń am (przed południem) i pm (po południu). Liczba dni może zostać podana w postaci x days, a miesiące można wpisywać korzystając z trzyliterowych skrótów w języku angielskim. Przykładowo, jeśli chcemy uruchomić dane polecenie o godzinie 4 rano za dwa dni. możemy wpisać:
at 4am + 2 days
Aby uruchomić zadanie w południe 25 listopada, wpiszemy:
at noon Nov 25
Wreszcie, jeśli chcemy zamknąć system o pierwszej w nocy dnia jutrzejszego, wpiszemy:
echo shutdown -fr now | at lam tomorrow