WWW.GENTOO-SRBIJA.ORG
Life isn't like a box of chocolates. It's more like a jar of jalapenos. What you do today, might burn your ass tomorrow. Četvrtak, 20 Novembar/2008  
 » SADRŽAJ
 › Uvod
 › Performanse
 › Mirori
 › Linkovi
 › Download
 › Mailing lista
 › Kontakt
 » PROFIL
» šifra
zapamti me
  Registracija
 » PRETRAGA
 » NOVI PAKETI
gnome-extra/lock-keys-applet-1.0: An applet that shows the status of your Caps, Num and Scroll Lock keys
dev-python/gtkmozembed-python-2.19.1-r10: Based on the libtool eclass
app-text/evince-2.24.1: Simple document viewer for GNOME
media-gfx/fontforge-20080927: postscript font editor and converter
dev-dotnet/glade-sharp-9999: Dummy ebuild to understand the package move to gtk-sharp[glade]
dev-dotnet/gtk-sharp-2.12.6: Gtk# is a C# language binding for the GTK2 toolkit and GNOME libraries
app-office/glabels-2.2.3: Program for creating labels and business cards
x11-base/xorg-server-1.5.2: X.Org X servers
dev-lang/mono-basic-1.2.4: Visual Basic .NET Runtime and Class Libraries
dev-dotnet/taglib-sharp-2.0.3.0: Taglib# 2.0 - Managed tag reader/writer
 » WEBMAIL
 » GENTOO-PORTAGE
And we're back
Forum index ›› Administracija › crontab i php skripte [RESENO]  
  AUTOR   PORUKA

Član
Učlanjen: 17 Apr 07
Lokacija: Novi Sad
Poruke: 41
profil¬ poruka¬ www¬
 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!!!!


Član
Učlanjen: 17 Apr 07
Lokacija: Novi Sad
Poruke: 41
profil¬ poruka¬ www¬
upRE: crontab i php skripte [RESENO]  Oglašeno: 16 Jun 07  12:49  

Ne znam jedino za permise php fajla? root ili?


Site Admin
Učlanjen: 28 Oct 04
Lokacija: Beograd
Poruke: 723
profil¬ poruka¬ www¬
upRE: 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...


Site Admin
Učlanjen: 28 Oct 04
Lokacija: Beograd
Poruke: 723
profil¬ poruka¬ www¬
upRE: 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...


Član
Učlanjen: 17 Apr 07
Lokacija: Novi Sad
Poruke: 41
profil¬ poruka¬ www¬
upRE: 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 !!!!!!!!!!


Site Admin
Učlanjen: 28 Oct 04
Lokacija: Beograd
Poruke: 723
profil¬ poruka¬ www¬
upRE: 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...


Član
Učlanjen: 17 Apr 07
Lokacija: Novi Sad
Poruke: 41
profil¬ poruka¬ www¬
upRE: crontab i php skripte [RESENO]  Oglašeno: 16 Jun 07  15:10  

Nista ne ispishe u /tmp/izvestaj.log file. Ne mogu da verujem!!!!


Site Admin
Učlanjen: 28 Oct 04
Lokacija: Beograd
Poruke: 723
profil¬ poruka¬ www¬
upRE: 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...


Član
Učlanjen: 17 Apr 07
Lokacija: Novi Sad
Poruke: 41
profil¬ poruka¬ www¬
upRE: 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.


Član
Učlanjen: 17 Apr 07
Lokacija: Novi Sad
Poruke: 41
profil¬ poruka¬ www¬
upRE: 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 :(


Član
Učlanjen: 04 May 05
Lokacija: Novi Sad
Poruke: 578
profil¬ poruka¬ www¬
upRE: crontab i php skripte [RESENO]  Oglašeno: 17 Jun 07  14:08  

Probaj da podesiš PATH u crontab.


Site Admin
Učlanjen: 28 Oct 04
Lokacija: Beograd
Poruke: 723
profil¬ poruka¬ www¬
upRE: 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?


Član
Učlanjen: 17 Apr 07
Lokacija: Novi Sad
Poruke: 41
profil¬ poruka¬ www¬
upRE: 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.


Site Admin
Učlanjen: 28 Oct 04
Lokacija: Beograd
Poruke: 723
profil¬ poruka¬ www¬
upRE: 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...


Član
Učlanjen: 17 Apr 07
Lokacija: Novi Sad
Poruke: 41
profil¬ poruka¬ www¬
upRE: 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 :)


Član
Učlanjen: 17 Apr 07
Lokacija: Novi Sad
Poruke: 41
profil¬ poruka¬ www¬
upRE: 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


Član
Učlanjen: 17 Apr 07
Lokacija: Novi Sad
Poruke: 41
profil¬ poruka¬ www¬
upRE: crontab i php skripte [RESENO]  Oglašeno: 19 Jun 07  16:24  

Evo ponovo je na kratko proradilo:


Jun 19 14:23:01 mail cron[25167]: (root) CMD (/usr/bin/lynx -dum 
p http://maysite.com/izvestaj.php) 



A onda kad promenim vreme za cron ponovo kaze reload umeso CMD......


Site Admin
Učlanjen: 28 Oct 04
Lokacija: Beograd
Poruke: 723
profil¬ poruka¬ www¬
upRE: 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


Član
Učlanjen: 17 Apr 07
Lokacija: Novi Sad
Poruke: 41
profil¬ poruka¬ www¬
upRE: 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