At - időzítés Linux alatt

Időzítésről már volt szó, a cron és használatát ismerjük. Aki szereti az ismétlődő feladatokat rábízni a gépére, annak ideális a cron. A periodikus feladatokat jól kezeli a cron, de ha csak egyszer szeretnénk futtatni valamit, egy adott időpontban, akkor már kényelmetlen lehet a használata. Erre is gondoltak a Linuxos guruk és rendelkezésre áll számunkra az at. Az at egy parancssori segédprogram, amely lehetővé teszi a parancsok ütemezését egy adott időpontban. A létrehozott feladatok csak egyszer kerülnek végrehajtásra. Általában a disztribúciók már alapból telepítik, ha nem, akkor sincs gond, simán fel kel rakni. Majd el kell indítani a atd-t, azaz az ütemezésért felelős démont. systemctl enable --now atd Értelemszerűen ez sudo…!

At parancs alap használata Linuxon

A használata egyszerű, bár a megszokott parancsoktól eltér. Három részből áll. Az elsőben elindítjuk az at-t és megadjuk neki at időpontot, amikor valamit kell tennie. Ma, fél tízkor: at 09:30 Az időpont megadása egyszerű, de vannak egyéb megadási lehetőségek is. Ezután kapunk egy ehhez hasonló kiírást:

warning: commands will be executed using /bin/sh at Fri May 8 10:31:00 2020 at>

Azaz vette az adást, hogy May 8 10:31:00 2020-kor neki valamit tenni kell, majd várja, hogy mit tegyen. Begépeled a feladatot, ami most az echo „Ügyes vagy!” Majd enter, és ha az összessel végeztél, akkor ctrl+D-vel lépsz ki. Megerősíti a feladat vételét:

job 3 at Fri May 8 10:31:00 2020.

Ezután – ha fut a gép akkor – végrehajtja a feladatot. Egyszerű? Az. Én ezt módszert használom, mert számomra átláthatóbb, és egyszerűbb, mint a következő. Az echo paranccsal adjuk meg a feladatot az at-nek.

At parancs egyéb használata Linuxon

echo "shred /home/laci/tmp *.*" | at 09:00 

A pipe használatáról volt szó, így nem okozhat gondot. A | jelet pedig a Alt gr (a jobboldali ALT) és a W lenyomásával kapod meg. A harmadik megoldás is kényelmesen használható, ha egy fájlt, scriptet akarsz futattni:

at 09:00 -f /home/laci/bin/script.sh

Azt használd, ami kényelmesebb. Ha a várakozási sort, azaz az at-ben megadott parancsokat, feladatokat akarod lekérdezni, akkor az atq lesz a barátod. Felsorolja a feladatokat, és ha valami mégsem kell, akkor a feladat sorszámát megadod az atrm sorszám formában, és törlésre kerül.

At parancs időformátuma Linuxon

Az időformátum megadása nem csak óra, perc, illetve pontosabban idő és dátum formátumban adható meg, hanem pár egyéb, angol szabvány szerint is. Használhatjuk a

  • PM, AM előtagot, illetve a
  • noon - délben
  • midnight - éjfélkor
  • teatime – délután négykor, tea időben
  • tomorrow - holnap
  • noon tomorrow – holnap
  • délben next week – egy hét múlva, ilyenkor
  • next Monday – Hétfőn, illetve a hét megnevetett napján
  • 2:30 PM tomorrow – holnap délután fél háromkor
  • 2:30 PM Oct 21 – adott hónap névvel megadva, az adott nap.

És az idópont now + 30 minutes / hour - 30 perc / óra stb. múlva 4 PM + 2 days / weeks / months / years – délután négyhez két nap / hét stb. múlva. Ahogy látni elég jól beállítható a futási idő, ami kellemes, bár jellemzően csak párat használ az ember a pontos megadáson kívül.

At parancs rendszergazdaként

Sudo! Igen futtathatunk emelt joggal is parancsot. Ilyenkor a sudo at időpont után bekéri a jelszót, majd kilépés után is megtartja az emelt jogát a folyamatnak. Ezzel vigyázz! Ez rendszergazdai jog, így bármi, akár destruktív parancs is lefuthat olyankor, amikor azt te nem látod.

Első látásra nem túl hasznos, én is kerültem a használatát régebben. Majd pár olyan tevékenységet passzív időbe időzítettem, ami vagy nagy sávszélesség igényű (szinkronizálni nagyobb könyvtárat a mega vagy egyéb tárhellyel) vagy nagy gépigényű (videó vagy hang konvertálás, tömörítés, takarítás a gépen). Bármire jó, amit nem most, rögvest akarsz megtenni, mert lelassítaná a hálózatodat, vagy a gépedet. Amire rájöttem, hogy alista hiába adok meg neki, azt nem hajtja végre. Lehet, hogy csak nálam nem, de érdemesebb a parancsot, amit az alias használ megadni, mint később sajnálkozni, hogy valami feladatot nem hajtott végre. Nagyjából ennyit érdemes, de legalább ennyit érdemes ismerni az at parancsról. 

magyarlinux.hu-n jelent meg eredetileg...