Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Cron mi nespousti php skript !

Honza Dluhoš
28. 2. 2005 21:35

Cron mi nespousti php skript !

Dobry vecer,

mam v /etc/crontab zapsano * * * * * php < /nekde/neco.php .
Tzn.,ze by se mel php skript neco.php spoustet kazdou minutu ale bohuzel se nespousti .Kdyz napisu do prikazove radky php /nekde/neco.php tak se skript bezproblemove spusti. Zkousel jsem snad uz vsechny mi zname moznosti zapsani do crontabu tak aby se to phpko spoustelo co minutu ale marne (napr. uvedu treba : 0-59 * * * * php /nekde/neco.php atd.) man cron a man crontab mam prostudovane. Nemuze mi nekdo prosim poradit anebo me nakopnout ?
Ondřej Válek
28. 2. 2005 22:51 Nový

Práva, chybový výstup

celé vlákno
Já bych zkusil do toho dronu nejdřív dát něco jednoduššího než php. A pokud by to fungovalo, tak bych volal php stylem: php /home/ja/nejaky/skript.php > /tmp/vystup.cron 2> /tmp/chyby.cron a sledoval jestli něco nehlásí. Za prvé není z vašeho příspěvku jasné jestli voláte php skript.php nebo php < skript.php. Také bych si ověřil zda má na ten skript php spuštěné cronem přístupové právo.
Pavel
Pavel (neregistrovaný)
1. 3. 2005 10:13 Nový

Re: Práva, chybový výstup

celé vlákno
Mozna trochu z jine strany: existuje zvlastni verze php urcena pro pouziti na prikazove radce PHP-CLI. pokud mate debian-based linux, staci pustit apt-get install php4-cli

Skript udelate spustitleny, na prvni radek pridate
#!/usr/bin/php -q

no a do crontabu uz pak pridate jenom jmeno skriptu
(myslim ze google php-cli pomuze. nedavno jsem cetl nejmene 2 clanky na toto tema ;-)

Hodne uspechu
Pavel Spalek
ondra
ondra (neregistrovaný)
2. 3. 2005 20:07 Nový

Re: Práva, chybový výstup

celé vlákno
zkus
05 * * * * /usr/local/bin/php -f /nekde/neco.php >/nekde/neco.log
me to funguje bez problemu

nebo jeste na zacatek php dam:

#! /usr/local/bin/php -q
<?php

?>

a chmod 755 na skript

05 * * * * /nekde/neco.php >/nekde/neco.log
uživatel si přál zůstat v anonymitě
1. 3. 2005 0:40 Nový

cesta

celé vlákno
Zkus to tam napsat jako /usr/bin/php (ci kde to mas). Tvuj uzivatel ma uplne jinak nastavene prostredi nez root.
Martin Kouřim
Martin Kouřim (neregistrovaný)
1. 3. 2005 1:13 Nový

uzivatel

celé vlákno
/etc/crontab (a soubory v /etc/cron.d) se lisi od normalniho crontabu tim, ze musite zadat take uzivatele pod jakym se bude prikaz spoustet, tj. treba * * * * * root php < /nekde/neco.php
Muze to byt ono?
tygr
tygr (neregistrovaný)
1. 3. 2005 8:48 Nový

chybna syntaxe

celé vlákno
Podle meho tam naprosto jasne nema byt znak <

takze spravne zapsani bude

* * * * * /usr/local/bin/php /nekde/neco.php
Ondra aura:80
1. 3. 2005 8:52 Nový

Plna cesta + vystup

celé vlákno
Opravdu byste mel pouzit pri volani programu/skriptu plnou cestu, cron s tim ma realne problemy, napriklad s promennymi prostredi, tedy vcetne $PATH. Takze napr.:

* * * * * /usr/local/bin/php /home/stroj/uzivatel/skript.php

Navic bych doporucoval pouzit prikaz "mail" pod uzivatelem, ktery Vas cron spousti, do mailu (/var/spool/mail/uzivatel) se totiz defaultne smeruje standardni i chybovy vystup cron-u. A uvedomte si, ze pokud zpracovani Vaseho skriptu trva dele nez 1 minutu, muzete mit problem...
Coliseum
Coliseum (neregistrovaný)
1. 3. 2005 13:38 Nový

Re: Plna cesta + vystup

celé vlákno
Dekuji vsem za jejich reakce !

Honza Dluhoš
uživatel si přál zůstat v anonymitě
1. 3. 2005 14:27 Nový

Re: Plna cesta + vystup

celé vlákno
osobne si myslim, ze pokial uzivatel nepouziva php-cli, je vhodnejsie pouzit pre takyto prikaz volanie php skriptu cez wget.

sam takto automaticky generujem predpoved pocasia a kurzove listy:

subor /etc/crontab:

# m h dom mon dow user command
14 30 * * * www-data /etc/skripty/forecast.sh
01 * * * * root /etc/skripty/import.sh

importovaci skript import.sh napr. vyzera takto:

#import.sh
#!/bin/bash
wget -q http://www.skfree.sk/cesta/skriptu/skript.php --directory-prefix=/tmp

a samotny php skript umiestnime do
http://www.skfree.sk/cesta/skriptu/skript.php

dodatky:

1. skript.php by mal byt spustatelny len z lokalnej stranky (ak nechceme, aby nam import spustal niekto cudzi, da sa to osetrit napr. HTTP_REFERRER, alebo nejakou session_id generovanou podla vlastnej funkcie

2. ak wget nemame, staci ho nainstalovat cez apt-get install wget alebo rpm/yum.
Coliseum
Coliseum (neregistrovaný)
1. 3. 2005 14:56 Nový

Re:

celé vlákno
Dobry den,

vytvoril jsem si v /etc adresar cron.minuta (/etc/cron.minuta) s pravy 755 a do /etc/crontab vlozil radek : * * * * * root run-parts /etc/cron.minuta . No a v adresari /etc/cron.minuta jsem vytvoril soubor 00_test.sh s pravy 755 obsahujici :
#!/bin/bash
echo "testujeme po minutach" | sendmail -t -F po_minutach@domena.cz admin@domena.cz

Bashovy skript (jak jiste vidite) by mi mel pomoci cronu zaslat kazdou minutu email ale nazasila . Ted uz to vubec nechapu ???

dekuji Dluhoš
core
core (neregistrovaný)
1. 3. 2005 21:04 Nový

Re: Re:

celé vlákno
Je neco v logu? na Debianu /var/log/syslog
Kazda radka v cronu musi byt ukocena novym radkem (odentrovana)..
Bezi samotny process cron?
Coliseum
Coliseum (neregistrovaný)
1. 3. 2005 22:05 Nový

Re: Re:

celé vlákno
V logu neni o cronu ani zminka ... jak odcentruju radku ? (nechapu :o) ) Ano samozrejme cron daemon bezi ... v logu od cronu je pouze ze se kazdou hodinu provedl cron.hourly a tot vse :(
uživatel si přál zůstat v anonymitě
2. 3. 2005 11:51 Nový

Re: Re:

celé vlákno
na konci radku zmacknout enter, klidne i vickrat :), nevim jak to lip rict,
proste aby byla na konci souboru /etc/crontab prazdna radka

muzes zkusit i misto celkem komplikovanyho run-parts tam
dat treba
date >>/tmp/crondate
a kouknout jestli to neco zapise
ale jestli to neni v logu, tak asi ne
Fci
Fci (neregistrovaný)
30. 10. 2005 21:09 Nový

Re: Re:

celé vlákno
Mel jsem podobny problem, toto pomohlo, moc diky!
uživatel si přál zůstat v anonymitě
2. 3. 2005 11:54 Nový

Re: Re:

celé vlákno
pripadne neni na skodu
/etc/init.d/cron restart
nebo
service crond restart
nebo tak neco..

i kdyz cron vetsinou zmenu zjisti sam od sbe
DaemonCZE
DaemonCZE (neregistrovaný)
28. 6. 2006 21:44 Nový

Nejede mi pod cronem příkaz na MYSQL

celé vlákno
příkaz: /usr/bin/php-cgi -f /var/www/tr/include/warn.php ve warn.php je příkaz: mysql_connect('server','uzivatel','heslo'); mysql_select_db('databaze'); hláška systému:
Fatal error: Call to undefined function: mysql_connect() in /var/www/tr/include/warn.php on line 5
Opravdu nevim co s tim ... php4 a apache2 normálně chodí ... Dik za radu DaemonCZE

Školení: Linux – Firewall, Samba, VPN

Na třídenním školení se naučíte nainstalovat a spravovat Firewall a Router, SAMBA Doménový a Souborový server. Dále si zprovozníte vlastní, zabezpečený VPN server.

Podrobnější informace a přihláška