Portál AbcLinuxu, 11. května 2025 04:37

Dotaz: Cron, basch script a echo

11.3.2009 11:41 PET | skóre: 1
Cron, basch script a echo
Přečteno: 235×
Odpovědět | Admin

Zdravím, vytvářel jsem  jeden skript který mě testoval nějaký soubor, jestli našel v souboru script danou hodnotu udělal jednu větev if, kde spouštěl jeden jeden cgi skript za pomoci wget.. kterej vypíše nějaké info v html co změnil.. pokud ne udělal druhou větev.. 

Měl jsem zde výpis echo "vše proběhlo v pořádku"

nebo zase že neproběhlo v pořádku..

když jsem skript spustil pod rootem, vše v pořádku fungovalo jak má..

jakmile jsem ho ale zadal do cronu abyse spouštěl každou minutu, script nefungoval..

V logu /var/log/messages mě každou minutu firewall zapsal log

Mar 10 12:44:02 NazevStroje kernel: IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.1 LEN=56 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=39376 DPT=512 LEN=36

trápil jsem se proč a pak přišel že to dělá echo ..  tedy výpis na obrazovku..  tedy jsem všechny echo předělal s výstupem do souboru za pomoci  >

program stále ale nefungoval tak jak má a proto jsem i tuhle část kde se spouští cgi skript musel vyřešit takhle :

if wget -O - -q http://www.blabla.cz/update.cgi > /var/log/logScriptu

if tam je protože testuju jestli to proběhlo v pořádku..  Dofám že se to tak dělá a pokud dojde k chybe vykoná se else? :)

 

Otázka tedy zní, jak se tohle řeší?

Jestli když cron spouští skript třeba pod rootem, nesmí nic obdržet vypsaného nic na obrazovku?

Sám sem si odvodil že když to spouští cron že nemá přiděleno tty tak proto to nejde? Ale nevím jestli to tak je..

Nebo jestli mám chybu na firewallu? Ikdyž zde mám povolené vše z lokálu na lokal a kamkoliv atd...
 

Díky za objasnění..


 

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

11.3.2009 13:49 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Cron, basch script a echo
Odpovědět | | Sbalit | Link | Blokovat | Admin
Přesměrovat
if wget -O - -q http://www.blabla.cz/update.cgi > /var/log/logScriptu
je docela rozumné, dělá se to tak většinou, jinak vám cron opravdu výstup posílá např. mailem, záleží na nastavení.

Při spouštění z cronu je asi problém v nastavení prostředí, dejte si ho v cronu vypsat příkazem:
env
Máte u toho programu který dělá tu potřebnou činnost plnou cestu? Pokud ho máte někde v PATH a PATH při spuštění procesu cronem je jiná než má root, tak by to mohl být ten problém. Je tu o cronu i nějaké FAQ... Další věc je že se vám to v cronu nejspíš pouští pomocí sh, nikoliv bash, to by mohl být další zádrhel.
11.3.2009 13:50 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Cron, basch script a echo
A pokud vám cron mailem nic neposílá, tak si to nastavte, alespoň se dozvíte když něco nefunguje, a co přesně nefunguje.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.