| AUTOR |
PORUKA |
|
|
Oglašeno: 16 Jun 07 12:48 Izmenio: johnny
|
|
Imam skriptu koji izvlaci iz baze mailove i shalje razne podatke iz baze.
Kad je pokrenem rucno sve je ok. Stvarno poshalje mailove sve sa sadrzajem.
Al problem nastaje kad koristim crontab. Jednostavno kao da se nista ne desi.
U log fajlovima /var/log/messages vidim da se cron izvrsi u zadato vreme ali ne vidim i rezultate.
Evo ga cronatab file: 33 10 * * * /usr/bin/php /tmp/izvestaj.php
Chmod php fajla je 755.
Php fajl pocinje sa: #!/usr/bin/php
Verzija php-a je 5.2.1-pl3.
Server API je Apache 2.0 Handler (ne cgi)
Ako neko ima ideju sta nije ok nek javi? Ja izludeh!!!!
|
|
|
|
→ RE: crontab i php skripte [RESENO]
Oglašeno: 16 Jun 07 12:49
|
|
Ne znam jedino za permise php fajla? root ili?
|
|
|
|
→ RE: crontab i php skripte [RESENO]
Oglašeno: 16 Jun 07 14:29
|
|
Proveri kako ti izgleda /var/spool/cron/crontabs/root , pretpostavljam da taj job treba da se pokrene kao root, i vidi da li imas jos jedan newline, znaci red... ako ispod ove linije koju si naveo nemas jos jedan prazan red job se nece izvrsiti... mene je jednom isto tako izludeo, sve se izvrsava osim job-a koji sam dodao poslednjeg... znaci ako ga nema udari jedan enter... ja obicno editujem fajl rucno, iako se to ne preporucuje...
p.s. umesto #!/usr/bin/php bolje koristi #!/usr/bin/env php
portabilnije...
|
|
|
|
→ RE: crontab i php skripte [RESENO]
Oglašeno: 16 Jun 07 14:33
|
|
A mozes i da proveris tako sto ces da bacis output (ako ga ima, ako ga nema dodaj neki echo...) skripte u neki fajl... > /tmp/izvestaj.log
Cron obicno ako skripta baci neki output a nemas instaliran mail server napravi u home-u dead.letter ili nesto sl. a u suprotnom ti na mail stigne output...
|
|
|
|
→ RE: crontab i php skripte [RESENO]
Oglašeno: 16 Jun 07 14:56
|
|
Probao sam sve sto si napisao ne radi. Imam dead.letter ali nista ne pishe u njemu. Prazan je.
Zadao sam da mi stize mail na postmaster@domen.com ali nista ne stize nista. sve sto imam u logu je:
cron[5183]: (root) RELOAD (crontabs/root) kad se cron pokrene.
Izludeo sam !!!!!!!!!!
|
|
|
|
→ RE: crontab i php skripte [RESENO]
Oglašeno: 16 Jun 07 15:03
|
|
Jesi probao ovo?
33 10 * * * /usr/bin/php /tmp/izvestaj.php > /tmp/izvestaj.log
Ako nista, onda moras malo da sredis skriptu, postavi uslove za sve sto treba da uradi... ako imas neke relativne putanje u skriptu (sadrzaj mailova koje saljes, slike etc.) onda moras ili prvo cd /path/koji/ti/treba && /usr/bin/php ... ili ih sredi da budu apsolutne...
|
|
|
|
→ RE: crontab i php skripte [RESENO]
Oglašeno: 16 Jun 07 15:10
|
|
Nista ne ispishe u /tmp/izvestaj.log file. Ne mogu da verujem!!!!
|
|
|
|
→ RE: crontab i php skripte [RESENO]
Oglašeno: 16 Jun 07 15:21 Izmenio: gen2brain
|
|
Cek, kad je pokrenes rucno ona radi jer da? Sta u stvari treba da uradi? Ok, izvuce adrese iz baze, pokupi sta treba da posalje i salje mailove. Sta tacno ne radi? Ne stigne ti mail ili sta? Ako se ne varam ako koristis osnovnu php mail funkciju za to ti treba u php.ini-ju putanja do sendmail-a (svi mail serveri naprave sendmail symlink), ako nisi stavio nikakav mail server, gentoo po default-u stavi ssmtp ali mislim da on ne moze da se koristi za to. Samo na windowsu moze da se zada server preko koga saljes a u linuxu to mora da bude path do sendmail-a. Opet kazem, probaj svuda da stavis uslove...
npr.
if(!mysql_connect()) {
die ("can't connect to mysql");
}
if(!mail()) {
die ("can't send mail");
}
i onda kad bacis output u neki temp vidis gde se skucao... ne znam sta drugo...
Edit: sad sam pogledao, moze i ssmtp da se koristi, i on napravi symlink /usr/sbin/sendmail ... proveri onda samo php.ini za cli, u /etc/php/cli-php5 ... verujem da je tu neka zeza, mail funkcija ce samo vratiti false ako ne uspe, a prilikom kompajliranja php-a se ne proverava da li sendmail postoji...
|
|
|
|
→ RE: crontab i php skripte [RESENO]
Oglašeno: 16 Jun 07 15:46
|
|
Radi kad se rucno pokrene nije to problem. Radi na svim platformama i na Genti i na Mandrivi i na Fedori i na Windowsu i na svemu samo ne radi kao cron job. Probao sam skoro na svim serverima u firmi sa cron jobom i ne radi ni na jednom. Ne znam il sam toliko glup ili ne znam sta je u pitanju,
Znaci odlepio sam. Nikad mise ovo nije desilo a josh ne mogu daprovalim u cemu je fora.
|
|
|
|
→ RE: crontab i php skripte [RESENO]
Oglašeno: 16 Jun 07 16:01
|
|
Rezultat od tail -f /var/log/qmail/qmail-send/current
kad pokrenem rucno skriptu
tacno ispishe na koje je mail poslato, da li je isporucenaporuka itd a kad cron odradi nista se ne desava.
dodushe u /etc/php/apache/php.ini fajlu nije izdefinisan path za sendmail kao i ona from variabla.
ne znam da li to daprobam da promenim :(
|
|
|
|
→ RE: crontab i php skripte [RESENO]
Oglašeno: 17 Jun 07 14:08
|
|
Probaj da podesiš PATH u crontab.
|
|
|
|
→ RE: crontab i php skripte [RESENO]
Oglašeno: 18 Jun 07 10:37
|
|
johnny napisao:
dodushe u /etc/php/apache/php.ini fajlu nije izdefinisan path za sendmail kao i ona from variabla.
Ne treba ti taj ini, ti koristis tu skriptu kao cli, apache nema veze sa tim, php moze da se koristi i u konzoli sto ti upravo i radis sa cronom. Pogledaj /etc/php/cli-php5/php.ini . Kad smo vec kod toga jer ti tu skriptu pokreces rucno iz browsera ili iz konzole?
|
|
|
|
→ RE: crontab i php skripte [RESENO]
Oglašeno: 18 Jun 07 17:06
|
|
r radi iz iz browsera i iz konzole. a kad uradim <?phpinfo()?> on kaze da koristi bash taj php.ini fajl. izvini sto kasni odgovor.
|
|
|
|
→ RE: crontab i php skripte [RESENO]
Oglašeno: 19 Jun 07 09:33
|
|
Pa kad startujes phpinfo() iz browsera koristice /etc/php/apache2-php5 a kad pokrenes iz konzole koristice cli-php5, to je normalno, da imas i cgi sapi imao bi i cgi-php5 direktorijum :)
$ php -i | grep php.ini
Configuration File (php.ini) Path => /etc/php/cli-php5
Loaded Configuration File => /etc/php/cli-php5/php.ini
Nego ajd vise da resimo ovo... ako nije problem do skripte onda mora da je mail() u pitanju, probaj sledecu stvar u konzoli:
php -r 'mail("root@localhost", "test", "test");'
Stavi naravno neki tvoj mail i vidi sta se desava, proveri logove i sl. Ako to ne radi, pogledaj php.ini za cli, a mozes i da uradis sledece:
emerge -C ssmtp && emerge postfix
Ne moras nista da sredjujes za postfix, default konfiguracija je dovoljna za ono sto tebi treba...
Jos nesto, proveri da li se cron job startuje kao root, vidi da li u /var/spool/cron/crontabs imas root fajl i da li je u njemu ono sto si sredio, ako se startuje kao user sredi ga da se startuje kao root, mozda ima veze i sa dozvolama...
|
|
|
|
→ RE: crontab i php skripte [RESENO]
Oglašeno: 19 Jun 07 16:09
|
|
Ovo testiram na mail serveru gde je qmail.
Sve gore je ok. Sve sam isproveravao i radi.
ovo shalje mail:
php -r 'mail("root@localhost", "test", "test");'
na zadatu mail adresu gmail itd...
nemam vishe ideju.
probao sam sa lynx, links, wget, curl i nista. kad rucno pokrenem sa bilo kojim radi :)
|
|
|
|
→ RE: crontab i php skripte [RESENO]
Oglašeno: 19 Jun 07 16:18
|
|
Juce sam uspeo da dobijem ovo u logu. Proradilo je par puta i onda nista ponovo:
Jun 19 08:42:01 mail cron[20550]: (root) CMD (curl http://mysite
.com/izvestaj.php)
A ostalo je:
[code]Jun 19 14:11:01 mail cron[5183]: (root) RELOAD (crontabs/root)[/
code]
Nije mi jasno to reload i cmd!!!!!?????? zasto je jednom ovako drugi put onako
|
|
|
|
→ RE: crontab i php skripte [RESENO]
Oglašeno: 19 Jun 07 16:24
|
|
Evo ponovo je na kratko proradilo:
A onda kad promenim vreme za cron ponovo kaze reload umeso CMD......
|
|
|
|
→ RE: crontab i php skripte [RESENO]
Oglašeno: 20 Jun 07 13:11 Izmenio: gen2brain
|
|
znaci definitivno je sve u redu sa mail() om , nemam vise ideja, sad sam pogledao moje cron logove, svaki se izvrsava sa CMD, koliko kapiram RELOAD radi kad se promeni vreme job-a... jer si pogledao da li se izvrsava kao root? Probaj i da restartujes cron daemon kad promenis vreme job-u.. /etc/init.d/vixie-cron stop && killall cron && /etc/init.d/vixie-cron start
|
|
|
|
→ RE: crontab i php skripte [RESENO]
Oglašeno: 20 Jun 07 15:43
|
|
Ovo je pomoglo......
/etc/init.d/vixie-cron stop && killall cron && /etc/init.d/vixie
-cron start
|
|