( Proci85 | 2011. 12. 13., k – 23:39 )

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?