ugrás a tartalomhoz

időzített php futtatás

Anonymous · 2006. Ápr. 4. (K), 12.53
Hali,

szeretnék egy php filet minden honap utolso napján 23.50 kor lefuttatni, hogyan kell ilyesmit tenni? Vmi cron v crontab linux parancs kell nekem de pontosan hogyan csináljam? Vagy egyszerűbb minden hó elsején 00.10 kor futtatni?

köszi
dreamer
 
1

cron

lolka_bolka · 2006. Ápr. 4. (K), 13.03
Igen, a crontab -ba kell betenni. Ez nem egy fuggveny, vagy parancs amit php-bol meg tudsz hivni: man cron, man crontab

Lolka
2

konkrétan

Anonymous · 2006. Ápr. 4. (K), 16.09
igen ezt tudom, de nem vagyok nagy linux használó, man nem sokat mond nekem, ssh-n bejelentkezem a serverre, és akkor mit kéne tennem? ha vki csinált már ilyet.

thx
3

Man pages

janoszen · 2006. Ápr. 4. (K), 16.27
A manpagesben le van írva minden. "man crontab" megmondja, hogy kell használni. Sorry, de most hirtelen nincs linux szerverem, hogy megmondjam.
4

php-cli

Darkfish · 2006. Ápr. 4. (K), 16.32
Szükséged lesz a php-cli csomagra (vagy hivhatod lynxxel is a kódodat, de az azért gány), valamint el ne felejtsd beírni, hogy a scriptedet a php futassa!

Kérdés, hogy lesz-e jogod minderre a szerveren.
5

kb. így

Anonymous · 2006. Ápr. 4. (K), 18.52
"crontab -e" ez a parancs erre általában vim-ben megnyitja a cronfájlt, aztán nyomsz egy Insert-et, és beírod:
50 23 31 * * futtatando_file_teljes_utvonallal
(a harmadik számba bizonytalan vagyok az eltérő hónaphosszak miatt)
szal, ha megvagy akkor Esc(erre eltűnik alul az Insert felirat), majd Shift + . azaz : és beírod write(kiírja, hogy mentett), majd újra Shift + . és beírod quit, elvileg ennyi.
6

félsiker :)

Anonymous · 2006. Ápr. 5. (Sze), 14.17
Sikerült megcsinalni amit mondtal, a mai dátummal:
20 14 05 04 06 /home/.../.../.../x.php
Nem történt meg amit akartam, mert az eredményét nem látom az adatbázisban, de azt irja kaptam egy levelet, tehát valszeg lefutott, lehet h az elérési ut rossz? A pwd adja meg nekem az abszolut utvonalat nem?

köszi
dreamer
7

re

Anonymous · 2006. Ápr. 6. (Cs), 09.54
mi volt a levélbe?
egyébként általában szervereken 2 db php.ini fájl van, külön a webre, és külön parancssorra, találkoztam olyannal, hogy a parancssorosban nem is volt mysql, szal ez is lehet a gond, hogy valami hiányzik.
de javaslatom, hogy ne is így futtasd, hanem csinálj egy bash scriptet, és abból futasd a php progit, szájbarágósan:
csinálsz egy üres fájlt: touch start.sh
és futathatóvá teszed: chmod +x start.sh
majd beleírod ezt a két sort:
#! /bin/bash --általában itt van a bash

/home/stb/stb/x.php > /home/stb.stb.x.php.log --ezzel az x.php kimenetét az x.php.log-ba irányítottad, magyarul ha van benne echo, print stb. illetve, ha hibaüzit ír, akkor azt a log fájlba fogod megtalálni.
a log fájl nem kell létrehoznod, magától létrehozza.

igen a pwd adja az elérési utat.

asszem ennyi.
8

másik fél

ady · 2006. Ápr. 6. (Cs), 09.55
Ha php-t akarsz futtatni automatizálva, akkor nem csak a php fájlt kell megadnod a crontab-ban, mivel az önmagában nem futtatható. Ahogy azt Darkfish is írta! Kell maga php értelmező is! Ehhez a PHP CLI-vel (Commend Line Interface) kell legyen telepítve. A korábbi verziókban különbözött a CLI futtatás a CGI futtatástól, ennek nézz utána itt!
Tehát valami ilyesmi kell majd neked:
50 23 31 * * /php_path/bin/php /file_path/pelda.php
Értelemszerűen a path helyére mindkét esetben a megfelelő útvonal jön!
És valóban a hónapok eltérő hosszúsága miatt egyszerűbb ha elsején hajnalban fut le a szkript!
Hajrá: ady