Az ssh+xentop párossal próbálkozom annak megállapítására, hogy az adott node-on mennyi kiosztható RAM van még.
Localhoston:
echo "quit()" | xentop | tr '\r' '\n' | col -bx | awk '/free/{print $6}'
Visszatérési érték: 5737772k
Sajnos a "xentop -b -i 1" batch mode itt nem működik, mert lehagyja a teljes fejlécet, ami az infot hordozná.
SSH-n keresztül:
ssh root@ip "export TERM=xterm; echo "q" | xentop | tr '\r' '\n' | col -bx | awk '/free/{print $6}'"
Visszatérési érték: 3dMem: XXXXXk total, XXXXXk used, 5737772k free CPUs: 8 @ 2533MHz
Alapból kell a TERM=xterm, különben hibára fut. Így sem tökéletes, mert az awk hatástalan. Mi lenne a megoldás?
Update: Magyarázat nincs, megoldás van:
ssh root@ip "export TERM=xterm; echo "q" | xentop | tr '\r' '\n' | col -bx | awk '/free/{print $6}'"
helyett:
ssh root@ip "export TERM=xterm; echo "q" | xentop | tr '\r' '\n' | col -bx | grep free | awk '{print $6}'"
Ez sem jó, csak grep free-ig, azonban ez már jó:
ssh root@ip "export TERM=xterm; echo "q" | xentop | tr '\r' '\n' | col -bx | grep free " | awk '{print $6}'
Ami változott, hogy a grep free után lezárom az ssh-n átküldött parancsot, a kimenetet tovább pipe-olom az awk-nak ami így már leszűri a 6. oszlopot.
Ha egyben küldöm át ssh-n, nem foglalkozik az awk-val.
Mi a magyarázat?