Cron a kdo vlastně spouští skript? Démon v pozadí nebo uživatel v prohlížeči?
Triviální zamyšlení nad tím jak rozpoznat, kdo pracuje se skriptem, zda uživatel anebo je skript volán cronem?
Zase další z řady triviálních článků na jeden řádek. Potřebujete zjistit jestli skript spouští uživatel v prohlížeči nebo ho spustil nějaký démon na serveru? Např. cron?
Minulý článek se zabýval přesměrováním skriptu v případě, že spouští akci cron, v případě, že ji spouští uživatel v prohlížeči je nutné použít header, naopak u cronu použijete cURL.
Jak poznat, kdo akci inicioval? Já to dělám takhle:
- if ($_SERVER['SERVER_ADDR']==$_SERVER['REMOTE_ADDR'])
$_SERVER['SERVER_ADDR'] - zjistí adresu IP serveru
$_SERVER['REMOTE_ADDR'] - zjistí adresu IP uživatele
Máte lepší nápad? Hlavičky mne přišli nejednoznačné.
Dále, si ale nejsem jist touto metodou např. u XMLRPC, tam budou adresy rozlišné, ale opět je nutné použít cURL.
podobné články
| 27.11.2008 | Cron a přesměrování, aneb jak na procesy v pozadí | (29%) |
| 27.06.2008 | XML-RPC přes CURL, aneb jak odeslat XML soubor vzdálené službě, když nemáme allow_url_fopen | (29%) |
| 10.07.2008 | Jak správně nastavit cron, aneb cron every 30 minutes | (14%) |
| 27.06.2008 | CURL, jak načíst obsah url, když nefunguje file_get_contents | (14%) |
| 07.06.2008 | Jak zjistit S-Rank pomocí XML-RPC | (14%) |
komentáře
RSS Komentáře
máš na mysli, přidat ten parametr přímo do systému, aby ke každému cron příkazu přidával parametr?pokud tak, je to opět hodně vázané na určité nastavení, nepřenositelné, porovnání IP je stejně tak spolehlivé ne? co se týče kolize IP, myslel jsem to jinak, tady šlo o to spustit skript v pozadí v případě, že komunikuje stroj a přesun na jiný skript nelze provést pomocí hlaviček, tedy klasický případ XML-RPC, tam se IP nebudou shodovat, ale ke spuštění skriptu také nelze použít hlavičky
- Neprenositelny ve chvili, kdy celou aplikaci za rok, či dva fungování zkopíruješ na jiný server, zapomeneš na toto nastavení a budeš dlouho zjišťovat proč to nejede.
- Stále to neřeší problém komunikace strojů, kteří nepřistupují pomocí browseru, článek je o volání skriptu v pozadí nebo přesměrování skriptu v případě, že nelze použít header. Tedy jak identifikovat stroj a jak browser.
může se zdát, ale není to ono, řešení je potřeba hledat na systémové úrovni, nejedná se pouze o cron jak napovídá předchozí článek, ale o všechna volání, kde nelze použít „header“, strojová volání XML-RPC, SOAP (obecné třídy, které nemohou být závislé na subjektivních nastaveních) a defaultně přidávat parametr do url nemusí být snadno proveditelné



Asi by nemela v rozumne nastaveny siti kolize ip serveru a klienta (premejslel jsem nad intranetem). Jen me napadlo, cron hazi nejakej User-Agent? (ikdyz, prohlizec ho samozrejme muze taky blokovat, ze…)