Portál AbcLinuxu, 14. května 2025 02:47

Dotaz: Jak zjistit dobu behu procesu

16.5.2008 16:42 Antonín Vaishar
Jak zjistit dobu behu procesu
Přečteno: 1144×
Odpovědět | Admin
Dobrý den,

potřeboval bych zjistit, jak dlouho se provádějí príkazy z cronu. Log cronu zaznamenává pouze čas spuštěni. Zajímalo by mě, jestli takovou informaci něco někam loguje, popřípadě jestli se to dá zjistit jinak, nez pomocí programu time. Pouzívám Red Hat.

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

Odpovědi

16.5.2008 17:50 Jan Šimák | skóre: 37 | Hradec Králové
Rozbalit Rozbalit vše Re: Jak zjistit dobu behu procesu
Odpovědět | | Sbalit | Link | Blokovat | Admin
A co ty příkazy spouštět přes utilitu time?
17.5.2008 23:19 Marian Krucina | skóre: 13
Rozbalit Rozbalit vše Re: Jak zjistit dobu behu procesu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ještě možnost přidat ;date za příkaz a budeš vědět, kdy skončil.
AraxoN avatar 18.5.2008 00:16 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: Jak zjistit dobu behu procesu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Štandardne cron pošle mail so všetkým čo spustený príkaz (príkazy) vypísal(i) na výstup. Tento mail sa odošle až v momente skončenia tej ktorej cronovej úlohy, takže z mailovej hlavičky "Date:" je jasné kedy to reálne skončilo. V cronlogu je potom zápis o tom, kedy to začalo. Stačí do úlohy pridať niečo, čo vyprodukuje nejaký výpis - hoci aj ten date, čo radí kolega vyššie, alebo ten time, aj keď nerobí to čo potrebuješ.

Ďalšia možnosť je spraviť si vlastný log, t.j. upraviť záznam cron-u z tvaru:

0 * * * * /home/araxon/bin/tazka_uloha.sh > /dev/null

na

0 * * * * echo `date` - START tazkauloha.sh >> /home/araxon/log/cronlog ; /home/araxon/bin/tazka_uloha.sh > /dev/null ; echo `date` - STOP tazkauloha.sh >> /home/araxon/log/cronlog
18.5.2008 00:41 Jan Šimák | skóre: 37 | Hradec Králové
Rozbalit Rozbalit vše Re: Jak zjistit dobu behu procesu
alebo ten time, aj keď nerobí to čo potrebuješ.
Proč by time neměl dělat co tazatel potřebuje?
Real time is defined as time measured from some fixed point, either from a standard point in the past (see the description of the Epoch and calendar time below), or from some point (e.g., the start) in the life of a process (elapsed time).
Mimochodem, vhodnější by bylo jednotlivé příkazy oddělit pomocí &&
AraxoN avatar 18.5.2008 00:54 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: Jak zjistit dobu behu procesu
Lebo to sám píše, priamo vo svojej otázke:
... popřípadě jestli se to dá zjistit jinak, nez pomocí programu time.
Oddelenie pomocou && má tú nevýhodu, že keď príkaz vráti chybu, tak sa ďalší už nevykoná, a do logu by tak nešiel údaj o skončení.
18.5.2008 01:09 Jan Šimák | skóre: 37 | Hradec Králové
Rozbalit Rozbalit vše Re: Jak zjistit dobu behu procesu
Tak to jo :-) :-) mojí nepozorností jsem to přehlédl, omlouvám se.
Pokud příkaz selže, není už pak podle mě doba běhu rozhodující (minimálně první dva příkazy by si ale toto oddělení zasloužily ;-))
18.5.2008 02:45 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Jak zjistit dobu behu procesu
To jako že když se nepovede echo start, tak se pro jistotu ani nevykoná tezkauloha.sh, ano? Zvláštní logika. Jinak doba běhu selživšího skriptu samozřejmě může být zajímavá.
18.5.2008 22:42 Jan Šimák | skóre: 37 | Hradec Králové
Rozbalit Rozbalit vše Re: Jak zjistit dobu behu procesu
Mě zas tak zvláštní nepřijde ;-)
Když chci zaznamenávat čas spuštění scriptu, přijde mi naopak docela logické, podmínit spuštění onoho scriptu úspěšným zaznamenáním aktuálního času a data. Toť pouze můj názor na daný problém.
20.5.2008 11:04 Antonín Vaishar
Rozbalit Rozbalit vše Re: Jak zjistit dobu behu procesu
Díky za cenné rady, zdá se, že budu muset použít jednu z možností time / vlastní log pomocí date. Jsem si původně myslel, že by se to dalo od někud vytáhnout, ale budu si muset poradit sám.

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.