Autor | Zpráva | ||
---|---|---|---|
Prefin Profil |
#1 · Zasláno: 14. 6. 2012, 15:50:31
Ahojda.
Chtěl bych se zeptat jestli je možné spouštět Cronem php script takto: 5 1 * * 1 script.php?prom=xxx Díkas |
||
HajekJirka Profil |
#2 · Zasláno: 14. 6. 2012, 19:19:04
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 |
#3 · Zasláno: 14. 6. 2012, 19:28:16
Prefin:
Kontrolujte IP adresu, server by měl mít IMHO localhost nebo 127.0.0.1 |
||
Mike8748 Profil |
#4 · Zasláno: 14. 6. 2012, 19:29:55
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 |
#5 · Zasláno: 14. 6. 2012, 19:53:49
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 |
#6 · Zasláno: 14. 6. 2012, 20:15:49
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 |
#7 · Zasláno: 14. 6. 2012, 20:30:05
Mike8748:
Díky za objasnění. |
||
Prefin Profil |
#8 · Zasláno: 14. 6. 2012, 21:40:21
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 |
#9 · Zasláno: 14. 6. 2012, 22:44:46
[#3] nepomůže?
|
||
Mike8748 Profil |
#10 · Zasláno: 14. 6. 2012, 22:44:59
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 |
#11 · Zasláno: 15. 6. 2012, 08:59:40
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 |
#12 · Zasláno: 15. 6. 2012, 10:43:49
Prefin:
Proč nevyhovuje ta kontrola Ip adresy? |
||
Prefin Profil |
#13 · Zasláno: 15. 6. 2012, 11:57:48
Someone:
No jo, to mě nenapadlo. A hlavně, že to je hned v třetím příspěvku. Díky. |
||
Časová prodleva: 12 let
|
0