időzített php script futtatása avagy Cron lépésről-lépésre
Sziasztok!
Van egy debian webszerverhez rootként való hozzáférésem, s itt szeretném elérni azt, hogy két - szintén ezen a szerveren levő - scriptem automatikusan lefusson a következő képpen.
1. /data/web/domainnev.hu/1.php - mindennap 23.00 kor.
2. /data/web/domainnev.hu/2.php - minden szombaton 20.00-kor
Mivel nem akarok elszúrni semmit sem, ezért kérném a segítségeteket, hogy hogyan lehetne ezt megvalósítani? Örülnék ha szájbarágósan írnátok le, mert a linuxhoz eléggé láma vagyok.
( Mintha a /etc mappába látnék mindenféle cron mappákat ).
Úgy gondolom, hogy ott kezdődik az egész, hogy belépek a putty-al rootként a szerverbe. S aztán?
Köszi, ha válaszoltok!
Péter
■ Van egy debian webszerverhez rootként való hozzáférésem, s itt szeretném elérni azt, hogy két - szintén ezen a szerveren levő - scriptem automatikusan lefusson a következő képpen.
1. /data/web/domainnev.hu/1.php - mindennap 23.00 kor.
2. /data/web/domainnev.hu/2.php - minden szombaton 20.00-kor
Mivel nem akarok elszúrni semmit sem, ezért kérném a segítségeteket, hogy hogyan lehetne ezt megvalósítani? Örülnék ha szájbarágósan írnátok le, mert a linuxhoz eléggé láma vagyok.
( Mintha a /etc mappába látnék mindenféle cron mappákat ).
Úgy gondolom, hogy ott kezdődik az egész, hogy belépek a putty-al rootként a szerverbe. S aztán?
Köszi, ha válaszoltok!
Péter
Cron
2 lehetoseg van...
1. root vagy a gepen es globalisab _rendszerszinten_ akarod futtatni [azert nevezem igy, mert rootket tucc nem csak igy futtatni]
root@localhost ~ # vim /etc/crontab
# ebben a
# - het minden napjan futhat,
# - minden honapban,
# - minden nap,
# - amiokor 23 ora van
# - es 0 perc...
# Ezt most visszafele sorrendben irtam le [nekerdezd miert]
0 23 * * * /usr/bin/php /data/web/domainnev.hu/1.php
# ebben a
# - mindne het 6. napjan futhat, [a 6 asszem aszombat]
# - minden honapban,
# - minden nap,
# - amiokor 20 ora van
# - es 0 perc...
# Ezt most visszafele sorrendben irtam le [nekerdezd miert]
0 20 * * 6 /usr/bin/php /data/web/domainnev.hu/2.php
2. userkent futtatva:
username@localhost ~ $ crontab -e
# aztan u.a. beirod amoda is =) de ehhez kell a cron group a usernek
# persze mindenhol a PHP eleresi utjat add meg, ha elter a /usr/bin/php-tol
Ezt: http://www.adminschoice.com/docs/crontab.htm
ajanlom a figyelmedbe... eleg jo leiras peldakkal ^_^
--
Sok sikert
ha lehet, kicsit részletesebben!
Tehát létre kell hoznom egy file-t? S mi legyen a neve? S melyik mappába érdemes ezt létrehoznom? S a tartalma ez legyen?:
0 23 * * * /usr/bin/php /data/web/domainnev.hu/1.php
0 20 * * * /usr/bin/php /data/web/domainnev.hu/2.php
( Én az 1.php -t mindennap 22-kor, a 2.php -t csak szombaton 23-kor szeretném futtatni.)
S ha létre is hoztam, akkor ezt kell beírni a prompthoz?:
root@localhost ~ # vim /etc/crontab
Tényleg nem értek annyira a linuxhoz, s ezért ha lehet kicsit részletesebben írjátok már le!
Köszi:
Péter
Man
Egyébként szvsz inkább keress egy linuxhoz értő embert mielőtt éles szerveren kisérletezel mert nem csak a saját szerveredre jelentesz veszélyt, hanem mindenki mások szerverére is.
Először is szerezz magadnak egy linuxos gépet, ami nincs kiengedve netre, ott kisérletezz.
Ezek után üsd be a "crontab -e" parancsot és a fent említett sorokat illeszd be. Ezzel létrejön a crontab fájl, amit a crontab szolgáltatás használ. Ezek után a crontab lefutásáról (már ha ír a programod valamit) e-mail-en megkapod a kimenetet.
Linux->cron
nah a vim az egy szovegszerkeszto... ha egnyitod fele a megadott file-t, akkor az lere is hozza...
mindegy miylen szerkesztovel, csak azt a file-t nyisd meg... amugy meg majndemhoyg 100%, hoyg letezik mar....
a vegere add hozza ezt a ket sort:
0 23 * * * /usr/bin/php /data/web/domainnev.hu/1.php
0 20 * * 6 /usr/bin/php /data/web/domainnev.hu/2.php
ennyi... jelentese:
- elso oszlop: milyen percekben, jelene setben minden oylan percben ami 0
- masodik oszlop: u.e. oraban... jelene setben mindne oylan oraban ami 23 [masik file eseten 20]
- harmadik: a honap hanyadik napjan... jelen esetben ahonap minden napjan.
- negyedik: milyen honapokban... jelen esetben ez is mindegy...
- otodik: a het melyik napjan... elso esetben mindegy... masodik esetben 6. szamu nap, vagyis szomaton...
- hatodiktol kezdve, hoyg mit tegyen...
* [csillag] jelentese: mindegy, mindegyik... wildcard
vagyis elso eset:
minden nap 23:00-kor...
masodik:
minden olyan napon, ami szombati nap futtassa 20:00-kor...
de akkor idezek a mar linkelt oldalrol:
- - - - -
| | | | |
| | | | +----- day of week (0 - 6) (Sunday=0)
| | | +------- month (1 - 12)
| | +--------- day of month (1 - 31)
| +----------- hour (0 - 23)
+------------- min (0 - 59)
nah szal ennyi... de
1. /data/web/domainnev.hu/1.php - mindennap 23.00 kor.
2. /data/web/domainnev.hu/2.php - minden szombaton 20.00-kor
ez a ket sorod mast ker, mint
( Én az 1.php -t mindennap 22-kor, a 2.php -t csak szombaton 23-kor szeretném futtatni.)
ez a sor...
a masodik kert esetben:
0 22 * * * /usr/bin/php /data/web/domainnev.hu/1.php
0 23 * * 6 /usr/bin/php /data/web/domainnev.hu/2.php
remelem eleg reszletes volt... ennel reszletesebben nemnagyon lehet elmondani, max szoban es mutatva kozben, hogy mi merre mennyi es peldakat mutatva... sokat...
amugy igaz eles rendszeren nem erdemes tesztelgetni... =/ de sok sikert...
####
# picit advencebb, de meg ez is eleg alapdolog...
#######
# Mailrol annyit.. ha ezt a file eleje rakod, akor nem kuld melt..
MAILTO=""
# ha ezt is odarakod/vagy csak ezt, akkor ez lesz a shell amiben futtatja
SHELL=/bin/bash
# ha et vagy ezt is, akkor ilyen IDvel fog futni
LOGNAME=1000
# ha ezt vagy ezt is, akkor ez lesz a home-ja, tehat ide logol errorok eseten nem levelet kuld...
HOME=/home/lightgod
Köszi!
Cron