Příkaz watch v bash skriptu

nobody(ten pravej)

Re:Příkaz watch v bash skriptu
« Odpověď #15 kdy: 08. 03. 2018, 18:03:31 »
Ale uvidi vystup, poslanim do pozadi ze mu STDOUT nezmeni, porad bude na terminalu ...
opravdu vidis vystup "watch free -m &" ? ;)


Martin

Re:Příkaz watch v bash skriptu
« Odpověď #16 kdy: 08. 03. 2018, 18:52:01 »
Ale uvidi vystup, poslanim do pozadi ze mu STDOUT nezmeni, porad bude na terminalu ...
opravdu vidis vystup "watch free -m &" ? ;)

Urcite ho videt musi, & odesles aplikaci na pozadi, ale nepresmerujes vystup. Jak pravil @Blag

Martin

Re:Příkaz watch v bash skriptu
« Odpověď #17 kdy: 08. 03. 2018, 18:57:44 »
Ale uvidi vystup, poslanim do pozadi ze mu STDOUT nezmeni, porad bude na terminalu ...
opravdu vidis vystup "watch free -m &" ? ;)

Urcite ho videt musi, & odesles aplikaci na pozadi, ale nepresmerujes vystup. Jak pravil @Blag

I kdyz ne... Protoze watch nepouzivam uplne bezne (a nikdy jsem ho nepotreboval), tak ted jsem testem zjistil, ze treba na debianu to neukazuje vubec nic a pri stisknuti enteru se beh programu ukonci. Minimalne na debianu.
Vizte obrazek:

KshGuy

Re:Příkaz watch v bash skriptu
« Odpověď #18 kdy: 08. 03. 2018, 19:46:51 »
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 ...
Kdepak ,  vystup bude v nohup.out a STDIN je vstup

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Příkaz watch v bash skriptu
« Odpověď #19 kdy: 08. 03. 2018, 20:18:23 »
Co takhle misto pousteni skriptu s watch pustit watch se skriptem, kdyz uz tam ten watch musi byt?


nobody(ten pravej)

Re:Příkaz watch v bash skriptu
« Odpověď #20 kdy: 09. 03. 2018, 00:46:22 »
I kdyz ne... [...] ted jsem testem zjistil, ze treba na debianu to neukazuje vubec nic[...]
take sem predtim naletel, kdyz to zkusil ciste v terminalu, kdyz to ale pustim ze scriptu, tak to zobrazuje a neukoncuje/nepozastavuje, tim ze script stale dale v nejake smycce zatim bezi :)
nicmene kdyz pak prijde vystup ze scriptu z neceho jineho, tak jde uplne dolu, takze se vystup free posune/rozpadne/zneviditelni, podle poctu radek vystupu... tohle by se scriptem bez watch take odpadalo...

Kdepak ,  vystup bude v nohup.out a STDIN je vstup
kdepak nohup.out nebude, dokud pred watch nenapise jeste nohup, coz uz by bylo jine zneni prikazu nez se psalo ;-)
ad STDIN to se Martin hned opravil ;-)

@tazatel abych nepsal jen ze watch je blbost, tak takhle je to kdyz bys hlidal hodnotu used ve vystupu free -m, pro hodnotu z jineho radku zmenis co grepujes, pro jinou pozici sloupce zmenis cislo u awk
Kód: [Vybrat]
limit="5000" # nastaveni limitu pri jehoz prekroceni se ma pokracovat dale
isused="$(free -m | grep Mem | awk '{print $3}')"

# dokud nebude splneno ze pouzito je vice nez nastaveny limit, smycka bezi
until [ "${isused}" -gt "${limit}" ]; do
    clear # pokud se ma smazat obrazovka
    free -m # pokud se ma zaroven zobrazit kompletni vystup
    sleep 1 # cekat vterinu
    isused="$(free -m | grep Mem | awk '{print $3}')"
done

echo "Vyuziti pameti ${isused} prevysilo nastaveny ${limit}, pokracuju dale..."


Youda

Re:Příkaz watch v bash skriptu
« Odpověď #21 kdy: 09. 03. 2018, 00:57:25 »
Pokd ma byt ucelem tohoto zoufaleho pinozeni merit metriku used memory, tak zkratka doporucuju nainstalovat Zabbix agent a pomoci zabbix-get se proste periodicky ptat na used memory key.

Neni uplne nutne vynalezat kolo

Re:Příkaz watch v bash skriptu
« Odpověď #22 kdy: 09. 03. 2018, 08:39:32 »
Uf, tak to se moc omlouvam, ze muj dotaz byl tak nesmyslny :-) Kazdopadne diky za tak plodnou diskuzi a je nad miru jasne, ze watch ve skriptu asi nic moc. Bohuzel nejsem az tak kovany v tvorbě skriptu a podobne,potreboval jsem neco jednoducheho ve smyslu "zeptej se tohohle procesu jakou ma hodnotu to a to  a podle toho zareaguj takhle" muj predpoklad byl spatny to vytvaret v bash.
A konkretne o co jde? mam v praci servery na kterych bezi urcité databaze (sql) tyto servery jsou v modu active hotstanby a pri pouzití urciteho prikazu zjistim ktery z techto serveru je aktivni a ktery ne a po urcite době je potreba na tom aktivnim provest urcitou operaci, takze jsem si myslel ze by se to dalo delat automaticky prave pomoci bash skriptu.
A ten watch jsem chtel pouzit proto, jelikoz jiny proces mi ukaze stav pripojenych linek do jineho systemu a nekdy se holt stane, ze ta linka se chova nekorektne a je potreba udelat opatreni a to ze se ty servery preklopi.
P.
« Poslední změna: 09. 03. 2018, 08:41:49 od grabtest »

Kit

Re:Příkaz watch v bash skriptu
« Odpověď #23 kdy: 09. 03. 2018, 09:58:50 »
K původnímu dotazu: watch může spouštěnému skriptu předat svůj PID a skript může zabít svého rodiče.

KshGuy

Re:Příkaz watch v bash skriptu
« Odpověď #24 kdy: 09. 03. 2018, 20:09:59 »
Uf, tak to se moc omlouvam, ze muj dotaz byl tak nesmyslny :-) Kazdopadne diky za tak plodnou diskuzi a je nad miru jasne, ze watch ve skriptu asi nic moc. Bohuzel nejsem az tak kovany v tvorbě skriptu a podobne,potreboval jsem neco jednoducheho ve smyslu "zeptej se tohohle procesu jakou ma hodnotu to a to  a podle toho zareaguj takhle" muj predpoklad byl spatny to vytvaret v bash.
A konkretne o co jde? mam v praci servery na kterych bezi urcité databaze (sql) tyto servery jsou v modu active hotstanby a pri pouzití urciteho prikazu zjistim ktery z techto serveru je aktivni a ktery ne a po urcite době je potreba na tom aktivnim provest urcitou operaci, takze jsem si myslel ze by se to dalo delat automaticky prave pomoci bash skriptu.
A ten watch jsem chtel pouzit proto, jelikoz jiny proces mi ukaze stav pripojenych linek do jineho systemu a nekdy se holt stane, ze ta linka se chova nekorektne a je potreba udelat opatreni a to ze se ty servery preklopi.
P.
Tak nevim, tohle zadání bych asi nebastlil, stejně neošetříš všechno, na to jsou jistě nějaké opensource nástroje.
P.S. Sorry za ten nohup, pozdě večer :-)