Příkaz watch v bash skriptu

Příkaz watch v bash skriptu
« kdy: 08. 03. 2018, 10:54:53 »
Ahoj potřeboval bych poradit.
Vytvářím jednoduchý skript ve kterém chci použit příkaz watch.
Například watch free -m.
No a teď to důležité :-) jde nějak zařídit, aby se onen watch zrušil, vypnul při dosažení určité hranice obsazení paměti?nebo obecně, přeruš watch, když nastane to a to, tam a tam :-),,,,a potom, aby zase pokračoval v běhu skriptu kde budou pokračovat další procesy.
Děkuji moc
P.


asdf111

Re:Příkaz watch v bash skriptu
« Odpověď #1 kdy: 08. 03. 2018, 11:12:11 »
nebude to az take pekne v bashi, ale
Kód: [Vybrat]
watch free -m | tee output a potom paralalne budes citat ten output subor a killnes watch pri splneni podmienky.

tf

Re:Příkaz watch v bash skriptu
« Odpověď #2 kdy: 08. 03. 2018, 12:11:40 »
A proc neni lepsi ten sledovany prikaz radeji hodit do smycky?

kultu

Re:Příkaz watch v bash skriptu
« Odpověď #3 kdy: 08. 03. 2018, 12:42:13 »
Osobně bych na to nešel přes watch, ale přeparsoval bych výstup s pomocí příkazů grep a awk abych získal hodnotu, na základě které chci ukončit běh skriptu. Pak bych použil nějaký cyklus v Bashi...

ByCzech

  • *****
  • 1 848
    • Zobrazit profil
    • E-mail
Re:Příkaz watch v bash skriptu
« Odpověď #4 kdy: 08. 03. 2018, 14:12:04 »
Vytvářím jednoduchý skript ve kterém chci použit příkaz watch.
Například watch free -m.

Tvl to jsou mi nápady... Použít smyčku na vyčítání přímo z příkazů, není důvod používat "smyčku" přes watch, k tomu se to absolutně nehodí.


Re:Příkaz watch v bash skriptu
« Odpověď #5 kdy: 08. 03. 2018, 14:17:04 »
Panove v pohodě,
prostě jsem se zeptal,,,ale asi se mi to jeví jako hodne krkolomné :-/
Kazdopadne dekuji za ucast a navrhy :-)
P.

Re:Příkaz watch v bash skriptu
« Odpověď #6 kdy: 08. 03. 2018, 14:26:31 »
Mozna jeste mi poradite, kdyz pustim ve skriptu watch jako prvni proces, dalsi uz se mi nespusti,,,jak se prosim da zaridit, aby dalsi procesy se pustily jako pod spustenym watch procesem.
Dekuji
P.

nobody(ten pravej)

Re:Příkaz watch v bash skriptu
« Odpověď #7 kdy: 08. 03. 2018, 15:28:07 »
ty jsi to nepochopil, watch vuubec poustet ve scriptu nemas ;)

jinak obecne pro pusteni na pozadi je:
Kód: [Vybrat]
prikaz &ale pak neuvidis vystup, musel bys ho presmerovat do souboru a zpracovavat soubor, coz se dostavame opet k tomu ze je to nesmysl ;)

tt

Re:Příkaz watch v bash skriptu
« Odpověď #8 kdy: 08. 03. 2018, 15:50:30 »
Nepomůže -e, --errexit
    Freeze updates on command error, and exit after a key press.

Předpokládám, že command error je podle exit code. Místo free se dá použít něco jiného, co vrací požadovaný exit code, třeba skripty nagiosu,
/usr/lib64/nagios/plugins/check_mem.pl

check_mem.pl v1.0 - Nagios Plugin

usage:
 check_mem.pl -<f|u> -w <warnlevel> -c <critlevel>

options:
 -f           Check FREE memory
 -u           Check USED memory
 -C           Count OS caches as FREE memory
 -w PERCENT   Percent free/used when to warn
 -c PERCENT   Percent free/used when critical


asdf123

Re:Příkaz watch v bash skriptu
« Odpověď #9 kdy: 08. 03. 2018, 15:56:10 »
Mozna jeste mi poradite, kdyz pustim ve skriptu watch jako prvni proces, dalsi uz se mi nespusti,,,jak se prosim da zaridit, aby dalsi procesy se pustily jako pod spustenym watch procesem.
Dekuji
P.
celkovo chces multithreadovu aplikaciu a v tom bash nevynika :) chces v jednom vlakne zobrazovat watch, alebo hocico aktivne do terminalu a chces nejak citat ten vystup a robit rozhodnutia na zaklade toho co sa vykresluje. Najblizsie tomu co chces dosiahnut je tee ako som ti uz radil. Ale aj tak by si mal pouzit nejaky pokrocilejsi jazyk...

nobody(ten pravej)

Re:Příkaz watch v bash skriptu
« Odpověď #10 kdy: 08. 03. 2018, 16:19:50 »
celkovo chces multithreadovu aplikaciu a v tom bash nevynika :) [...]
to by nebyl problem, to je nesmyslne pouziti watch ;-) v bash muze klidne pustit na pozadi toho kolik chce, muze i zobrazovat nekolik vystupu z procesu na pozadi s presmerovanym vystup, za pouziti rozdeleni okna pres byobu/tmux, nebo otevreni vice zalozek v terminalu, oboji lze nascriptovat...

Blag

Re:Příkaz watch v bash skriptu
« Odpověď #11 kdy: 08. 03. 2018, 16:38:05 »
ty jsi to nepochopil, watch vuubec poustet ve scriptu nemas ;)

jinak obecne pro pusteni na pozadi je:
Kód: [Vybrat]
prikaz &ale pak neuvidis vystup, musel bys ho presmerovat do souboru a zpracovavat soubor, coz se dostavame opet k tomu ze je to nesmysl ;)

Ale uvidi vystup, poslanim do pozadi ze mu STDIN nezmeni, porad bude na terminalu ...

Blag

Re:Příkaz watch v bash skriptu
« Odpověď #12 kdy: 08. 03. 2018, 16:38:24 »
*STDOUT

Youda

Re:Příkaz watch v bash skriptu
« Odpověď #13 kdy: 08. 03. 2018, 17:29:26 »
Ono by asi nejlepsi bylo, kdyby tazatel napsal, co chce dosahnout.
Osobne jsem watch jeste v zivote nepouzil a nijak mi to nechybi

KshGuy

Re:Příkaz watch v bash skriptu
« Odpověď #14 kdy: 08. 03. 2018, 17:32:30 »
Uz jsem to dlouho nepouzival, ale co treba co-process , v bashi pry coproc, v ksh to bylo |&
https://unix.stackexchange.com/questions/86270/how-do-you-use-the-command-coproc-in-various-shells#86331