2012-05-14 14 views

Odpowiedz

75

Używanie komendy free:

% free 
      total  used  free  shared buffers  cached 
Mem:  2061712  490924 1570788   0  60984  220236 
-/+ buffers/cache:  209704 1852008 
Swap:  587768   0  587768 

Na podstawie tego wyjścia łapiemy linię z Mem i za pomocą awk wybrać konkretne pola dla naszych obliczeń.

To Procent pamięci w użyciu

% free | grep Mem | awk '{print $3/$2 * 100.0}' 
23.8171 

To Procent pamięci, który jest wolny

% free | grep Mem | awk '{print $4/$2 * 100.0}' 
76.5013 

Można by stworzyć alias dla tego polecenia lub umieścić to w drobny Skrypt powłoki. Specyficzna produkcja może być dostosowana do potrzeb korzystających z polecenia formatujące dla instrukcji print wzdłuż tych linii:

free | grep Mem | awk '{ printf("free: %.4f %\n", $4/$2 * 100.0) }' 
+7

'wolny -t | grep "bufory/pamięć podręczna" | awk '{wydrukuj 4 USD/(3 $ + 4 $) * 100}' 'również działa całkiem dobrze, ponieważ zawiera numery pasujące do Mem w htop/top –

+5

@ KevinJalbert's: działa cudownie, dziękuję. Możemy jednak pominąć 'grep' i przejść od razu do' awk': 'free | awk '/ buffers \/cache/{print 4 $/(3 $ + 4 $) * 100.0;}' ' – Wrikken

+0

@Wrikken: działa również cudownie, dziękuję. Ale możemy to ulepszyć, pomijając pozostałe liczby jako procent również "wolny" awk '/ Mem/{printf ("used:% .2f%"), 3 $/2 $ 100}/bufory \/cache/{printf (", bufory:% .2f%"), 4 $/(3 $ + 4 $) * 100}/Zamień/{printf (", zamień:% .2f%"), 3 $/2 $ * 100} '' –

Powiązane problemy