Portál AbcLinuxu, 10. května 2025 00:19

Dotaz: Jak debugovat cronem spouštěné procesy, případně cron?

28.8.2007 13:17 Thunder.m | skóre: 35 | blog: e17
Jak debugovat cronem spouštěné procesy, případně cron?
Přečteno: 296×
Odpovědět | Admin
Potřebuji spouštět každou hodinu složitý bashový skript (volá i další skripty), pokud spouštím skript z příkazové řádky vše jde bez problémů, pokud skript spouštím cronem pak se pustí až každou druhou hodinu, nevím kde hledat chybu, cesty jsou správně nastavené.

Jediné co mě napadá je to, že skript běží přesně 3660 vteřin, takže se jednotlivé části spouštění překrývají.

Zajímavé je že pokud spouštím skript s menším počtem částí (vyhodím jeden konkrétní skript, který volá), pak vše funguje.

Už jsem si myslel že jsem na to přišel, ale bohužel se mi to nepodařilo, stále to zlobí, jen to chvíli fungovalo. Už jsem se tu na toto ptal ve vlákně Jak otestovat stabilitu pc bez restartu?, ale nyní si myslím že to se stabilitou PC nemá nic společného.

Proto bych daný problém rád začal pořádně debugovat, jak mohu v Debianu přinutit cron, případně crontab (oboje má stejný problém), k pořádnému logování, abych zjistil kde je problém?

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

Odpovědi

28.8.2007 16:44 .
Rozbalit Rozbalit vše Re: Jak debugovat cronem spouštěné procesy, případně cron?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Cron se da debugovat tezko. Taky ani neni moc co. Proste spusti prikaz pomoci bash (sh) a pokud neco vyplivne, tak to posle emailem.

Asi nejjednoduzsi tedy je debugovat ten prikaz co spustis. Pokud ho mas psanej v bashu, je nejlepsi dat nekde na zacatek

set -x

a pak bud presmerovat vystup ze scriptu nebo si cist systemove emaily.
28.8.2007 17:00 Thunder.m | skóre: 35 | blog: e17
Rozbalit Rozbalit vše Re: Jak debugovat cronem spouštěné procesy, případně cron?
Vím kde se celý skript zasekne a právě to na tom nechápu, zasekne se předtím, než vejde do smyčky while v jednom skriptu. Nenapdá mě jediný rozumný důvod proč by se to na tom mělo zaskenout. Ale zkusím to tak jak říkáš jen pro ověření.
28.8.2007 19:37 Thunder.m | skóre: 35 | blog: e17
Rozbalit Rozbalit vše Re: Jak debugovat cronem spouštěné procesy, případně cron?
Tak asi to opravdu vůbec nechápu, teď jsem udělal to, že místo záznamu v crontab
/etc/init.d/program start
mám záznam
/etc/init.d/program_pom
který obsahuje:
#! /bin/bash                                                                                                                        
                                                                                                                                    
# cesty jsou důležité                                                                                                               
PATH="/sbin:/bin:/usr/sbin:/usr/bin"                                                                                                
                                                                                                                                    
/etc/init.d/program start 2>>/var/log/program/log.log 1>>/var/log/program/log.log
A najednou to 3x prošlo bez problémů, uvidím jestli to bude fungovat dlouhodobě :(

Nemůže mít například cron nějaký limit pro počet řádků, které může skript vypsat?
29.8.2007 20:09 Thunder.m | skóre: 35 | blog: e17
Rozbalit Rozbalit vše Re: Jak debugovat cronem spouštěné procesy, případně cron?
Tak chování se mi opravdu potvrdilo, cron se chová přesně tak, jak jsem popsal, první verze padá, druhá verze chodí, i pokud ostraním přesměrování do logů. Netuší někdo kde může být problém?
29.8.2007 20:25 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Jak debugovat cronem spouštěné procesy, případně cron?
A máte na začátku /etc/init.d/program také něco jako:
#! /bin/bash                                                                                                                        
                                                                                                                                    
# cesty jsou důležité                                                                                                               
PATH="/sbin:/bin:/usr/sbin:/usr/bin"                                                                                                
29.8.2007 20:42 Thunder.m | skóre: 35 | blog: e17
Rozbalit Rozbalit vše Re: Jak debugovat cronem spouštěné procesy, případně cron?
Ano, začátek je naprosto stejný, o problémech s cestami a cronem vím, také vím o problému s odřádkováním v cron souboru.

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.