PHP scriptek időzítése Cronnal
Ha szükségünk van scriptek időzített futtatására, akkor a cront tudjuk segítségül hívni Linux alatt, mely lehetőséget ad rendszeresen elvégzendő feladatok ütemezésére.
Helyileg az etc/cron.d helyre tehetjük a scriptet, melyben beállítjuk, milyen időközönként fusson le a PHP script. Egy sora a következőképp néz ki:
1 | */5 * * * * root /usr/bin/wget -q -O - http://domain.tld/cron/meghivando_script.php >/dev/null |
Itt balról jobbra haladva a végrehajtás idejének a következő egységeket adhatjuk meg: perc, óra, nap, majd a hónap és a hét egy napja (0=Vasárnap).
Tehát a fenti esetben a script minden 5 percben lefut.
Egy képpel szemléltetve:

Ha nem szeretnénk megadni egy értéket, akkor annak oszlopába “*”-ot írunk. Amennyiben szükséges több adatot megadni egy oszlopban, úgy vesszővel választjuk el az értékeket. Ha intervallumot adunk meg, akkor azt kötőjellel választjuk el. Se a kötőjel két oldalára, se a vesszők után nem rakhatunk szóközt.
Még egy példa: Ha minden nap reggel 8kor szeretnénk futtatni a scriptet, akkor írjuk ezt:
1 | 0 8 * * * root /usr/bin/wget -q -O - http://domain.tld/cron/meghivando_script.php >/dev/null |
Elég egyértelmű. Két fontos dologra hívnám még fel a figyelmet:
1. A sorok végén a kimentek a dev/null-ra vannak irányítva, ami azt jeleni, hogy a sima output (a level 1-es) üzenetek nem jelennek meg, azonban a level 2 uzenetekrol (hibauzenetek) jelentest kapunk. Ha minden üzenetet el szeretnénk nyomni, akkor használjuk a “&>/dev/null” formát. Ha egy fájlba szeretnénk küldeni a kimentet, akkor azt így tehetjük meg:
1 | 0 12 * * * root /usr/bin/wget -q -O - http://domain.tld/cron/meghivando_script.php >/home/starz3r0/cron_tmp.log |
2. Az fájl végére tegyünk pár soremelést a nem kívánt mellékhatások (pl. hogy biztosan figyelembe vegye az utolsó definíciót is) elkerülése céljából.






Legutóbbi hozzászólások