ugrás a tartalomhoz

időzített php script futtatása avagy Cron lépésről-lépésre

PetyaKmet · 2008. Jan. 10. (Cs), 18.35
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
 
1

Cron

lightgod · 2008. Jan. 10. (Cs), 22.30
Udv!

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
2

ha lehet, kicsit részletesebben!

PetyaKmet · 2008. Jan. 10. (Cs), 23.54
Bocsi, de nem teljesen értem. Rootként tudok belépni.
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
3

Man

janoszen · 2008. Jan. 11. (P), 00.16
Üsd be a "man crontab" parancsot és mindent meg fogsz tudni a crontab használatáról. Ha esetleg nem elég, a google 1 980 000 találatot ad a "crontab" kifejezésre.

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.
4

Linux->cron

lightgod · 2008. Jan. 11. (P), 20.48
Udv!

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:
*     *     *     *     *  command to be executed
-     -     -     -     -
|     |     |     |     |
|     |     |     |     +----- 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
5

Köszi!

PetyaKmet · 2008. Jan. 11. (P), 22.41
Köszönöm a gyors válaszokat! Most próbálgatom.
6

Cron

lightgod · 2008. Jan. 19. (Szo), 05.51
Sok sikert ^_^