Aktív témák

  • Intruder2k5

    MODERÁTOR

    A cron használata Tomato firmware-ben

    A cím láttán gondolom most többekben felmerül a jogos kérdés, hogy mi a fenét lehet magyarázni ezen, amikor egy világos és egyértelmű oldalon, az Administration -> Scheduler menü alatt, mindent szépen be tud állítani az is, aki először látja a Tomato-t. De nem véletlenül írtam cron-t, és nem Scheduler-t, ami megértéséhez egy pár mondatos magyarázat szükséges.

    Nos tehát igen, ez valóban így van, az említett Scheduler menüben be lehet állítani több dolgot is, router újraindítást, WAN újracsatlakozást, vagy akár több féle tetszőleges feladatot is, sok-sok fajta választható időzítéssel, bármilyen megadott időpontra 15 perces időközönként, vagy több féle ciklikusan ismétlődő beállítást is választhatunk. Ezt a funkciót már én is használtam többször, és használom a mai napig is. Régebben amíg DSL kapcsolatom volt, addig volt beállítva minden nap éjfélre egy WAN reconnect, illetve most is vannak 5 percenként időzítve különböző scriptek, amik minden 0, 5, 10, 15, stb... perckor futnak le.

    Ez eddig hibátlan is a dolog, de itt jön a csavar!

    A napokban szerettem volna időzíteni egy újabb feladatot, aminek minden órában négyszer kellett volna lefutnia, 0, 15, 30, és 45 perckor. Igen ám, de ha felvettem az időzítést "Every 15 minutes" beállítással, akkor nem 0, 15, 30, és 45 perckor futtatta a feladatot, hanem a beállítástól kezdte mérni az időt, és mindig onnantól számolva 15 percenként futott le. Tehát, ha mondjuk 14:03 időpontban adtam hozzá a feladatot, vagy éppen akkor indult el a router, akkor 14:18, 14:33, stb... időpontokban futott le újra a feladat, ami nekem ebben a formában nem felelt meg, ezért aztán utána néztem, hogy miként lehetne használni a "sima" crontab-ot.

    Nos, mi sem egyszerűbb ennél, a cru, azaz Cron Utility paranccsal.

    A parancsnak három lehetséges opciója van, a mint add, d mint delete, és l mint list, vagyis az elsővel új időzítést tudunk beállítani, a másodikkal törölni, a harmadikkal pedig a meglévő listát tudjuk kiiratni.

    A parancs tartalmaz egy tetszőleges elnevezést, amivel mondjuk eltávolításkor hivatkozhatunk a bejegyzésre, a hagyományos cron időzítést, illetve a futtatandó parancsot. Formátuma a következő legyen...

    1. Új időzítés hozzáadása

    cru a job_elnevezes "0,15,30,45 * * * * /jffs/parancsfile.sh"

    2. Ugyanezen időzítés törlése

    cru d job_elnevezes

    3. Aktuális lista kiiratása

    cru l

    Az 1-es pontban használható cron időzítés szintaxisa a következő legyen...

    Amennyiben azt szeretnénk, hogy az időzítés a router újraindítása után is mindig érvénybe lépjen, úgy az első parancsot adjuk hozzá az Administration -> Scripts -> Init oldalhoz is.

    Sok sikert hozzá! :)

    [ Szerkesztve ]

Aktív témák