Portál AbcLinuxu, 5. května 2025 21:57
env LANG=C top -n 1 | grep Cpu | awk '{print$2}'
tak dostanu výsledek například "14.4%us," hezké, ale MRTG se to už nelíbí a proto potřebuju nějak vytáhnout pouze tu část před znakem "%". Pokud vím ,mělo by to jít přes parametry awk, ale z manpages nejsem vůbec chytrý.
Druhá věc:
Pokud se přihlásí user přes SSH, jsou jeho příkazy hezky v bashhistory, takže vím kdo co dělal, pokud ale některý použije sudo -i, nebo sudo su, tak se sice příkazy logují do BH roota, ale už nepoznám kdo co dělal. Nešlo by to nějak logovat nezávisle na bashhistory a na sudu ? něco jako:
@12:54 - 12.03.2010 user anton did: ping seznam.cz @12:55 - 12.03.2010 user anton did: sudo -i @12:55 - 12.03.2010 user anton(root) did: ping -f seznam.czNeptejte se prosím, proč má na jedné mašině roota víc lidí, nesouvisí to s tématem. Vím že když bude uživatel root, může udělat cokoliv, včetně mazání tohoto logu, z toho však strach nemám, jde spíš o to aby se udržel přehled, popřípadě, když se neco zmrví, tak ať se ví na koho řvát.
Řešení dotazu:
env LANG=C top -n 1 | awk '/^Cpu/ { sub(/us\,/,"",$2) ; print $2 }' 22.0%substr je pro pocitani delky retezce :(
env LANG=C top -n 1 | grep Cpu | awk '{print$2}' | sed 's/%.*//'
$ mpstat | grep all | awk '{print $4}'
LANG=C idle=$(top -n 2 | grep "Cpu(s)" | tail -n 1 | awk {' print $8 '} | cut -f 1 -d .); usage=$(( 100 - $idle )); echo $idle $usage
0 100
Nevim, me to funguje...
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.