Čo je at?
Pre automatizáciu, resp. plánovanie úloh v Linuxe slúži cron. Ten však môže byť trochu zložitý pre ľudí, ktorí ho nikdy nepoužili. Príkazom at si tiež naplánujete spustenie úloh v zadanom čase - môže to byť akákoľvek hodina, minúta i sekunda v akomkoľvek dni v určitom mesiaci či roku, teda kedykoľvek.
Cron a at - aký je rozdiel?
Pomocou cron sa úlohy spúšťajú opakovane, neskôr ich teda už nemusíte nikdy plánovať a bude stačiť, ak nastavenie urobíte len raz - napríklad každý deň (alebo iba každý týždeň) v čase o 13:30. S at je plánovanie vždy iba jednorázové.
Načo je at užitočný?
Pre význam plánovania úloh stačí i dobrá fantázia. Naplánujete si napríklad jednorázové zálohovanie, ale môže to byť i sťahovanie súborov z internetu v prípadoch, keď sťahujete veľa a práve máte zahltenú (pomalú) linku. Rovnako si nastavíte budíček, ktorý vás upozorní, že treba vypnúť sporák s už uvareným čajom, alebo si spustíte antivírový program práve v čase, keď budete sedieť pri televízore, pretože skenovanie diskov systém spomaľuje, čo nikomu nie je veľmi po vôli, keď pracuje.
Atd démon
Pokiaľ chcete použiť príkaz at, musí vám v pozadí bežať atd démon, ktorý bude všetko riadiť. Ak vám atd nebeží, spustíte ho nasledovne:
/etc/init.d/atd start
Konkrétne príklady s at
Predpokladajme, že je poobede, a to 16:00 (dátum nie je dôležitý). Do príkazového riadku napíšete:
at 16:44
Zobrazí sa vám príkazový riadok, kde zadáte akýkoľvek príkaz. Ten sa samozrejme spustí o 16:44 toho istého dňa:
juro@debian:~$ at 16:44 warning: commands will be executed using /bin/sh at> play /usr/share/sounds/KDE_Startup.wav at> <EOT> job 1 at Sat Dec 5 16:44:00 2009 juro@debian:~$
Po zadaní príkazu at 16:44
stlačíte kláves [Enter] a potom napíšete príkaz:
play /usr/share/sounds/KDE_Startup.wav
Zase ťuknete na kláves [Enter] a buď uvediete ďalšie príkazy, alebo úlohu číslo 1 (job 1 - pokiaľ je úloha naozaj prvá) ukončíte klávesmi [Ctrl-d], po čom sa zobrazí <EOT> aj s textom, ktorý vidieť nižšie (job 1 at Sat Dec 5 16:44:00 2009
).
Týmto bolo povedané všetko, a to aj to, že pre stanovený čas môžete naplánovať viac úloh. Úlohu či úlohy ukončíte vždy pomocou kláves [Ctrl-d], ale budú vykonané iba v čase, pomocou ktorého ste sa dostali do príkazového riadku at. Pre plánovanie úloh v inom čase (dni, mesiaci, minúte, sekunde) to už bude iná úloha (napríklad job 2).
Ďalšie príkazové konštrukcie
Pre flexibilnosť sa radšej vyhneme ostatným príkazovým konštrukciám a použijeme iba jednu - at now + čas
, pomocou ktorej si plánovanie naozaj nastavíte na kedykoľvek.
Prostredníctvom at now + 2 hours
si napríklad nastavíte vypnutie počítača o dve hodiny neskôr (alebo o 3, o 4 hodiny atď.):
juro@debian:~$ at now + 2 hours warning: commands will be executed using /bin/sh at> shutdown -h now at> <EOT> job 4 at Sat Dec 5 18:57:00 2009
Alebo, pokiaľ vám myšlienky lietajú v hlave a zabúdate ich, aj stiahnutie veľkého ISO súboru si hneď môžete naplánovať povedzme nazajtra (ak je práve polnoc; ak nie je, čas si upravte podľa potreby):
juro@debian:~$ at now + 12 hours warning: commands will be executed using /bin/sh at> wget ftp://ftp.at.debian.org/debian-cd/5.0.3/i386/iso-dvd/debian-503-i386-DVD-1.iso at> <EOT> job 5 at Sun Dec 6 05:05:00 2009 juro@debian:~$
Samozrejme, nezabudnite si overiť, aký čas ukazuje váš systém.
S konštrukciou at now + ...
môžete, okrem hodiny (hour) alebo hodín (hours), použiť i minutes (minúty), days (dni), weeks (týždne), years (roky).
Pokiaľ chcete úlohy zrušiť, najprv si zobrazte, aké čakajú na pozadí:
juro@debian:~$ at -l 4 Sat Dec 5 18:57:00 2009 a juro 5 Sun Dec 6 05:05:00 2009 a juro 3 Sun Dec 6 16:44:00 2009 a juro
Pomocou atrm
zrušíte napríklad úlohy 4 a 5:
juro@debian:~$ atrm 4 juro@debian:~$ atrm 5
Overíme si to:
juro@debian:~$ at -l 3 Sun Dec 6 16:44:00 2009 a juro
Áno, úlohy 4 a 5 boli zrušené.
Možno pre niekoho bude netradičné používať príkaz at
, ale je veľmi praktický. Pokiaľ nebudete klásť fantázii hranice, napadne vás určite viac možností ako v tomto stručnom návode. Tak do toho!