FreeBSD nastavenie CRON JOB
Dobry den.
Potrebujem si na FreeBsd spustat kazdy den jeden zalohovaci skript na stranku.
Cron Job mam nastaveny v CRONTAB.
Lenze je problem ze ziadny cron sa nevykona a nechapem preco ...
Je treba este nieco spustit ?
cron job vyzera takto:
18 13 27 8 * root /usr/local/www/data/download.php
nemoze byt problem v tom ze v command sa vola priamo subor PHP a nie nejaky linuxacky skript?
taky to máš blbě.
pouštíš to v 13:18 27. měsíc a 8. den (takový ani neexistuje)
edit: samotný PHP samozřejmě teoreticky zavolat můžeš, pokud do prvního řádku uvedeš intepretr ve formátu #!/cesta/interpretr a nastavit eXecute bit (ale rozhodně to moc nedoporučuji, spíš je lepší volat interpretr a skript vložit jako parametr)
edit2: viz manpage cronu či wiki: Crontab
co je na tom zle ??? mne sa to zda uplne v poriadku
ako to mam spravit s tym interpreterom ???
na zaciatku crontable mam nieco taketo :
jj, můj omyl, máš pravdu, je to 27.8.
a co se týká interpretu, tak to je špatně. Systém neumí přímo spustit php script.
takže máš 2 možnosti:
1. (lepší) použiješ zápis v cronu /sbin/php /var/html/muj.php (cesty si samozřejmě uprav podle svého systému)
2. (horší) v crontab to necháš jak je, ale do skriptu dáš na první řádku #!/sbin/php (cestu samozřejmě dáš podle svého systému) a skriptu nastavíš chmod-em +x, tak aby byl spustitelný.
P.S.: nezapomeň, že cron si občerstvuje seznam úloh co minutu, takže doporučuju nastavit čas spuštění alespoň 2 minuty dopředu.
a cestu k PHP mam dat do toho adresara kde je aj subor php.ini ?
éééé!!! nééé!!
ten string #!..... dej přímo na začátek toho skriptu
btw, opravdu máš v systému php? není to jen modul do apache (tady si nejsem úplně jistý, tyhle webovky jsou mimo mě)?
ale neee ... nepochopil si ma .... myslel som to tak ze cestu k adresaru php mam dat taku istu ako ma adresar kde je ulozeny subor php.ini ? --- ale nasiel som nejaky adresar php v /usr/local/bin/php ... tak skusim ten
použij příkaz which (najde ti cestu k PHP):
which php
no hej ... bolo to tam .... ale stale sa mi skript nevykonal vrrrr mam to takto
a stale to neeejde ----
alebo musim aj na prvy riadok dat
? pochopil som to tak , ze bud jedno alebo druhe
dobře (tvůj předpoklad je správný), ruční spuštění
funguje?
toto mi nefunguje
no tak potom máš asi PHPko jen jako modul pro apache.
zkus to ještě takto:
jednoduše to tedy zavolej přes web...
toto mam zapisat do command?
cize uz tam nebudem davat perd to ten interpreter ...
jj
staale nic ..... ten lynx funguje aj vo FreeBSD?
a máš ho vůbec nainstalovaný?? Co ti to píše?
co mam mat nainstalovane ?
ja neviem co pise ..... ja fungujem cez PUTTY a tam vela nevidno
tam vidno dosti
TW myslí jestli máš instalovaný ten lynx. Když napíšeš lynx a zmáčkneš ENTER tak se stane co?
Prostě musíš mít nainstalovaný Apache (nebo něco jinýho) s podporou PHP. Ten zálohovací skript musí hostovat na tom Apachi a musíš být schopný spustit ho - takže se zkus nějakým prohlížečem dostat k tomu skriptu. Ideální je na to třeba ten linx (v textovym režimu), ale myslim, že bys to mohl třeba i stáhnout pomocí wgetu (wget skript.php).
mam apache aj php a viem sa tam dostat napr z netu
jaaj pockat .... ale ja som to v takejto forme dal do CRONU . ty si to myslel tak ze priamo napisat do konzoly
mas spustene vobec cron demona?
mu to nefunguje ani z příkazové řádky. Tam bude větší ošíbka...
Ked do konzoly napisem :
tak mi to vyhodi chybu: Could not open input file: /usr/local/www/data/download.php?host=nejaky host&user=uzivatel&password=heslo&destination=mies to
uz som asi prisiel na to kde je problem ..... ja totiz tomu skriptu posielam kopu parametrov a niektore hodnoty su tam oddelene bodkociarkou. A jeden dobry clovek mi povedal ze to pototm berie ako viac prikazov, takze to musim dat cele do uvodzoviek
takze teraz to skusam tak ... ale pre zmenu to pisem priamo do prikazoveho riadka
OMFG!
Mam novy problem ...
Ten skript mi uz ide pekne spustit cez
ale len priamo cez prikazovy riadok
Ale ked to dam do CRON-u, tak to nic nerobi....
Nechapem ....
Cron demon je zapnuty
přesměruj výstup (STDOUT) i chybový výstup (STDERR) do souborů. tj.:
ať vidíš, co se děje.
ziadne subory mi to nevytvorilo
- toto som dal az za tie moje uvodzovky
tak tam místo toho dej jen
ať víme, že Cron pracuje ok.
Cron pracuje OK pretoze je v nom jeden zalohovaci .sh skript. A ten zalohuje normalne.
Ale mozem skusit.
Takze uz som to vyriesil ... jeden dobry clovek mi poradil aby som lynx zadal s plnou cestou cize v tvare:
Ale vdaka vsetkym ale najmä touchwoodovi.
AAA este mi neda , keby som chcel aby mi vystup toho skriptu prisiel na moj email ?
To by sa dalo spravit?
vždyť jsem ti psal, že musíš psát cestu!
pokud chceš výstup na mail, tak se podívej do manstránky cronu, jde to tam nastavit, kam se má posílat stdout z naplánovaných úloh.