Autor Zpráva
Prefin
Profil
Ahojda.
Chtěl bych se zeptat jestli je možné spouštět Cronem php script takto:
5 1 * * 1 script.php?prom=xxx
Jde mi o kontrolu kdo to spouští.
Díkas
HajekJirka
Profil
Nebylo by rychlejší to vyzkoušet?

Můžeš spustit jakýkoliv script.
Ovšem nechápu větu: "Jde mi o kontrolu kdo to spouští.".

Ten script přece spustí CRON (server).
Someone
Profil
Prefin:
Kontrolujte IP adresu, server by měl mít IMHO localhost nebo 127.0.0.1
Mike8748
Profil
Prefin:
nešlo. php skript takto bude spouštěn jako CGI, takže GET parametry mít opravdu nebude
možnost 1) spouštět to jako "script.php xxx" a ve skriptu si z $argv vytáhnout hodnotu
možnost 2) spouštět to jako "wget http://www.tvujserver.cz/script.php?prom=xxx" (případně místo wget použít CURL)
HajekJirka
Profil
Mike8748:
Já nevím jak to funguje, ale mám hosting u Wedos a tam to normálně jde.
http://kb.wedos.com/webhosting/cron.html
Mike8748
Profil
HajekJirka:
ano, protože jejich cron už je "připraven" na to že bude volat URL se skriptem přes HTTP protokol. předpokládam že jejich administrace (viz tebou odkázaná nápověda s obrázkem) následně způsobí to že zadaná url bude volána nějak takto (například)
curl --insecure -s -S "http://tvojezadanadomena/tvujskript.php?parametr=xxx a toto bude skutečně uvedeno v záznamu CRONu

to co uvedl Prefin je ale již záznam přímo cronu jako takového, přimo v operačním systému, kde to funguje trošku jinak. CRON (jakožto démon, služba) umí zpracovat akorát takové příkazy které se dají normálně spustit z prostředí systému serveru kde ten demon běží. pro volání URL je třeba použít právě utility jako je wget nebo curl, které obstarají HTTP volání skriptu, čímž to "začátečníkům" ulehčí (CGI skripty mají jiné "prostředí", POST a GET parametry nemají, ale mohou číst parametry z příkazové řádky, viz. php manuál a $argv a $argc)
HajekJirka
Profil
Mike8748:
Díky za objasnění.
Prefin
Profil
Prefin:
Jde mi o kontrolu kdo to spouští.
Přesněji chci mít kontrolu,že ten script spouští Cron, protože pokud by někdo zjistil jeho url tak by ho spustil pouhým zavoláním a protože tento script losuje výherce finanční odměny tak jsem trochu paranoik.
Ale je to zabezpečený ještě nekolika jinými způsoby tak je to a si zbytečné.
Jo, wget jsem tam jenom zapomněl dopsat.
Díky všem. Zase zkušenost.
Someone
Profil
[#3] nepomůže?
Mike8748
Profil
Prefin:
taky pokud je to tvuj server (coz predpokladam kdyz mas takovej pristup ke cronu), tak je moznost ten skript umistit nekam uplne mimo prostor apache (ci jineho www serveru), aby nebyl nijak volatelny pres http pozadavek, a cron nechat volaj "php -f /cesta/ke/skript.php" (php ti zpracuje tvuj skript, a protoze skript bude umisten mimo www server tak neni sance ze by nekdo "zjistil url" a zavolal ho)
Prefin
Profil
Mike8748:
No právě že není. Sice do nějaké doby si to přesunu na samostatný server, zatím mám hosting u Angelu a tam je fakt vymakaná administrace včetně přístupu ke Cronu. Bohužel tedy nemám přístup mimo root webu.
A ta až paranoidní ochrana je zatím třeba, protože tenhle web pravděpodobně hodně změní určité odvětví na trhu a možná vezme pár lidem slušné peníze tak se snažím aby nebyl až tak moc děravej.
Přiznám se, že o volání scriptu jako cgi toho moc nevím.
Chtěl jsem zajistit, aby script běžel jedině s identifikací pomocí nějaké proměnné a bez ní hned na začátku skončil.
Díky
Someone
Profil
Prefin:
Proč nevyhovuje ta kontrola Ip adresy?
Prefin
Profil
Someone:
No jo, to mě nenapadlo. A hlavně, že to je hned v třetím příspěvku.
Díky.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: