Fórum Ubuntu CZ/SK
Ostatní => Ubuntu Server => Téma založeno: Bernard Williams 08 Dubna 2008, 16:19:20
-
Zdravím,
potřeboval bych zjistit, jak nejlíp spouštět na Linuxu PHP script každých 10 min.
Děkuji, Bernard
-
Cron
http://interval.cz/clanky/jak-na-demona-cron/
http://www.foogazi.com/2006/12/07/understand-cron-jobs-in-5-minutes/
-
Jestli ještě tohle nevíte, tak pro pořádek:
Udělejte si skript.php a úplně nahoru napište:
#!/usr/bin/php
a pak už pište ty příkazy, snad tam nemusí být ani <?php ?>...
-
Cron
Cron mě zprvu napadl... jiná možnost v Linuxu není? Např. přímo nějakým scriptem?
Udělejte si skript.php a úplně nahoru napište:
#!/usr/bin/php
a pak už pište ty příkazy, snad tam nemusí být ani <?php ?>...
Teď nevím jak to myslíte... souvisí to nějak s pravidelným spouštěním scriptu nebo je to jen jiný způsob zápisu PHP scriptu?
-
Cron
Cron mě zprvu napadl... jiná možnost v Linuxu není? Např. přímo nějakým scriptem?
Co vam na cronu vadi? Vdyt je to presne urceno pro tenhle ucel pravidelne spusteni skriptu v predem znamych intervalech. Nic lepsiho bych si na to nedokazal predstavit.
-
No tak mě třeba na cronu vadí že to nemůžu použít u sebe na stránkách protože mám koupenou doménu a hosting u forpsi :D. Takže se přidávám. Nevíte někdo jak spouštět skript pravidelně bez závislosti na návštěvnících stránky?
-
Cron
Cron mě zprvu napadl... jiná možnost v Linuxu není? Např. přímo nějakým scriptem?
Udělejte si skript.php a úplně nahoru napište:
#!/usr/bin/php
a pak už pište ty příkazy, snad tam nemusí být ani <?php ?>...
Teď nevím jak to myslíte... souvisí to nějak s pravidelným spouštěním scriptu nebo je to jen jiný způsob zápisu PHP scriptu?
Jestli se nebude chtít spustit normálně, kdy je ve skritu pouze <?php ?>, zkuste popřípadě napsat nahoru #!/usr/bin/php a bude se spouštět jako skript v shellu, nějak tak jsem to chtěl říct...
-
No tak mě třeba na cronu vadí že to nemůžu použít u sebe na stránkách protože mám koupenou doménu a hosting u forpsi :D. Takže se přidávám. Nevíte někdo jak spouštět skript pravidelně bez závislosti na návštěvnících stránky?
Zkus webcron.
-
A pokud webcron není dostupný, můžete požádat šťastnější majitelé soukromých/firemních serverů, aby u sebe nastavili crona na wget :)
-
Určitě to zkusím, jen co budu mít trochu méně práce. Teď dělám na třech projektech najednou a tak moc nestíhám. Naštěstí jeden ve čtvrtek končí. Ale na forum stále chodím a pomáhám, to bych bral jako smrtelný hřích, sem nechodit :-)
-
Tak jsem nějak tak přemýšlel jak to udělat a napadla mě šílená věc :D. Co dát do cronu příkaz links www.blabla a dát tam adresu toho skriptu? Je teda pravda že musí být zapnuté pc co to bude dělat... ale podle mě by to fungovalo, ne? Jinak Cron neznám, jen vím že vykonává pravidelně úlohy.
PS: Promiňte že jsem needitoval, ale nebyl jsem si jistý jestli by se tu objevilo new...
-
Tak jsem nějak tak přemýšlel jak to udělat a napadla mě šílená věc :D. Co dát do cronu příkaz links www.blabla a dát tam adresu toho skriptu? Je teda pravda že musí být zapnuté pc co to bude dělat... ale podle mě by to fungovalo, ne? Jinak Cron neznám, jen vím že vykonává pravidelně úlohy.
PS: Promiňte že jsem needitoval, ale nebyl jsem si jistý jestli by se tu objevilo new...
Ale to je přesně to, co jsem Vám navrhoval :)
1) Buď to udělat sám pomocí crona - ale ne pomocí links (nebo lynx) ale pomocí wget:
wget http://localhost/muj_pravidelne_se_spoustejici_script.php -O /dev/null 2>/dev/null >/dev/null
tenhle příkaz stáhne požadovanou www stránku do /dev/null, pokud nastane chyba, zapíše ji taktéž do /dev/null a pokud bude mít touhu o něčem vyprávět, pošleme to opět do /dev/null
2) Poprosit někoho jiného o to samé (pokud nemáte možnost crona nebo webcrona), ten dotyčný akorát nebude používat
http://localhost/...
ale
http://www.mojesajta.cz/...
:)
-
aha, nj, takhle je to efektivnější... nemusí se pouštět ten chudák prohlížeč :).
Promiňte, občas jsem trochu pomaleji chápající...
-
Jen doplním, že ke spouštění PHP scriptů jako shell je zapotřebí instalace balíku php5-cgi (nejsem si jistý, jestli se musí instalovat i balík php5). Samotný script pak vypadá takto:
#!/usr/bin/php5-cgi -q
<?php
echo "Funguje to!\n";
?>
Parametr -q potlačuje vypisování http hlaviček a <?php ?> ve scriptu musí být.
-
Nevim teda, na co konkretne to potrebujes, ale pokud to spousteni scriptu nemusi bejt zrovna pinktlich presne po nejakym danym intervalu, tak bych to hodil normalne do scriptu na strance a psat si na disk prazdnej soubor, kterymu vzdycky pri ukonceni scriptu touchnes aktualni cas, pak ho jenom kontrolujes a kdyz preleze pozadovanej interval, pustis script znovu. Takhle jsem mel reseny cache webovek, dokud jsem bastlil stranky na podobnejch silenejch hostingach, jako je pes.
Ma to i tu vyhodu, ze kdyz na strankach neni zadnej provoz, tak taky neni pro koho generovat novej obsah a script se zbytecne nepousti.
Jde to pustit i ze stranky, ktery bezi komletne z cache - tedy cisty HTMLko - strcis to do obrazku.