Autor Zpráva
anonym123
Profil *
Zdravím,

je možné na debianu spuštět CRONem nějakou www stránku? Konkrétně mi jde o spouštění synchronizace stránky s Active Directory. Vše funguje, ale potřebuji spouštět script automaticky.

Zkoušel jsem editovat crontable na debianu, vložil jsem záznam * * * * * /usr/bin/wget http://site/tool/index/ ale nefunguje mi to. když zkusím přímo ze serveru spustit příkaz /usr/bin/wget http://site/tool/index/ wyhodí mi to hlášku 401 authorization required.

Dokáže někdo poradit? Asi by bylo jednodušší spouštět přímo php soubor, ale spíš bych potřeboval spouštět adresu ve tvaru uvedeném výše, pokud to vůbec jde.

díky za odpovědi.
Joker
Profil
anonym123:
Tak jedna možnost je, že server skutečně vyžaduje ověření (v tom případě asi přihlašovací údaje do domény).
Druhá možnost je, že je problém k té cestě na adresář. V tom případě server zobrazí definovaný výchozí soubor, když není výchozí soubor, seznam souborů v adresáři a když je to na serveru zakázané (což často je), právě chybu 401.

Ještě upozornění, takhle definovaná CRON úloha se bude spouštět neustále každou minutu.
juriad
Profil
anonym123:
Ta stranka vyžaduje přihlášení, které musíš poslat spolu s požadavkem.

Napiš si nějaký shellový skript, kterým budeš tu stránku volat.
Místo wgetu je možná lepší použít curl. Ve Firefoxu ve Firebugu na kartě Síť si po navštívení té stránky můžeš celý příkaz pro curl vygenerovat (pravé myšítko, kopírovat cURL); pak se bude skript tvářit přesně jako prohlížeč. Samozřejmě nesmíš být před tím v prohlížeči přihlášený, aby se neposílalo nějaké SESSION_ID, které později nebude existovat.

Jakmile pak ten skript odladíš v terminálu, bude fungovat i v crontabu.

Ukázka:
curl 'http://diskuse.jakpsatweb.cz/?action=vthread&forum=31&topic=159444' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' -H 'Accept-Encoding: gzip, deflate' -H 'Accept-Language: en-US,en;q=0.5' -H 'Cache-Control: max-age=0' -H 'Connection: keep-alive' -H 'Cookie: ***tajne***' -H 'Host: diskuse.jakpsatweb.cz' -H 'Referer:  Diskuse JPW' -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0'
Joker
Profil
juriad:
Nestačí k wget přidat --user a --password?
anonym123
Profil *
Joker:
co se týče intervalu spouštění, je to zatím nastavené právě na každou minutu. Až mi to bude fungovat podle očekávání, změním to na jednou týdně v nočních hodinách, to problém není.

juriad:
bohužel, Firefox je korporátně zakázaný, takže tady mi to nejspíš moc nepomůže...

I tak díky.


Joker:
hmm, ani tak... přidal jsem za wget --user=USER --password=PASSWORD a stejně mě nechce pustit


... a nefunguje ani --http-user nebo --proxy-user
anonym123
Profil *
tak jen pokud by to někoho zajímalo, nepodařilo se mi na to přijít... Zkoušel jsem různé nastavení ověření na proxy atd, ale nedostal jse se o moc dál. Nakonec jsem to vyřešil přes klasické php * * * * * php /var/www/blabla/file.php Je to sice trochu práce navíc, ale na druhou stranu to má i pár výhod.... Takže tak :) Díky všem za snahu

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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