Wiem, że df -hl
wyświetla listę wszystkich moich partycji wraz z ich rozmiarem, wykorzystaniem procentowym i dostępnym miejscem.
Jeśli chciałbym podać tylko rozmiar i użycie jako procent sda2
i sda3
, na przykład, jak mogę powiedzieć Linuksowi (Ubuntu), aby je sprawdził, zsumował i pokazał mi?
ubuntu
command-line
użytkownik32398
źródło
źródło
Odpowiedzi:
Aby
df
obliczyć sumy, użyj--totals
opcji. Jeśli chcesz, aby sumy były tylko dla niektórych wybranych dysków, podaj je jako argumenty.Przykłady (i dane wyjściowe z mojego komputera)
Jest to suma dla wszystkich lokalnych montowań:
Ograniczenie do kilku dysków (zwróć uwagę, że jeśli podana ścieżka nie jest dokładnym punktem montowania, używany jest najbliższy zawierający punkt montowania [patrz uwaga na końcu] ):
lub używając
dev
nazw:Dalsze dostosowanie
Jeśli chcesz wyświetlić listę wszystkich montowań oprócz „specjalnych”, możesz użyć
-x
opcji wykluczania według typu partycji. (Użyj-T
opcji, aby wyświetlić typy.)Osobiście do celów interaktywnych używam następującego aliasu bash (dodanego do
~/.bash_aliases
), aby wykluczyć montaże „niefizyczne”.Uwaga
Określenie ścieżek w punktach podłączenia może czasem dać wyniki w innej formie, określając dokładną ścieżkę do punktu podłączenia. Na przykład na laptopie używam
sshfs
do montowania (lokalnego) serwera plików.Serwer root (
/
) jest zamontowany na~/.server-root
. Jednak na serwerze dyski są montowane/disks/*
, o którychdf
(na laptopie) nie wiadomo.Oczywiście
df
można wymienić użycie dysku na różnych mocowaniach na serwerze, jeśli podano odpowiednie ścieżki. Pokazuje jednak ten sam „system plików” i „zamontowany” dla wszystkich ścieżek, ponieważ (uważam) jest to jedyny punkt montowania (związany z tymsshfs
montowaniem) w lokalnej tabeli montowania jądra.Kolejna sprawa: nie bardzo związana z pytaniem, ale związana z poprzednią odpowiedzią na pytanie.
Sumowanie liczb za pomocą
awk
skryptu (lub podobnego), podobnie jak niektóre wcześniej opublikowane odpowiedzi, nie jest dobrym pomysłem podczas korzystania z-h
flagi. Jest tak, ponieważ wymagana jest specjalna obsługa. Nie możesz po prostu zrobićsize+=$2;
dla pola, które jest418M
w jednym rzędzie i12G
w drugim, i uzyskać z niego coś pożytecznego…Na przykład z
awk
dodawaniem500M
do10.2G
wydajności510,2 czego?
Tutaj jest wyraźnie problem. Tak więc, jako wskazówka do zapamiętania , kiedy wykonujemy (automatyczne) obliczenia na wyjściu
df
(i innych, które mogą używać liczb „czytelnych dla człowieka” ) . Upewnij się, że nie używasz-h
flagi i że dane wejściowe do skryptu obliczeniowego są znormalizowane (na przykład do bajtów, bloków, KB itp.) I wykonaj „skalowanie wyświetlania” na końcu. W większości języków skryptowych i programowych nie jest trudno dodać coś takiego:gdzie wartość jest w bajtach, a próg jest wartością rzędu 1000. Rezultatem tej metody jest to, że można ją łatwo dostroić, aby uzyskać wydrukowane wartości (z wyłączeniem prefiksu) w pożądanym zakresie i za pomocą szeregu znaczących cyfr wybierając W porównaniu do przypadku ze standardowymi narzędziami z
-h
przełącznikami, w których format jest często ustalony.Oczywiście obliczenia te często można uczynić bardziej wydajnymi i / lub eleganckimi, ale jest to pytanie dotyczące konkretnego języka, w którym jest napisany. Szczerze mówiąc, jeśli jest ono używane w skrypcie użytkownika uruchamianym tylko od czasu do czasu w celu interaktywnego przeglądania trochę informacji, wydajność tak naprawdę nie stanowi problemu.
źródło
Myślę, że chciałeś sumę obu
size
iuse%
źródło
size+=$1
) do tego pytania. Ta metoda naprawdę nie jest kompatybilna z-h
opcjądf
.Użyłbyś narzędzia takiego jak
awk
:Gdzie:
/^\/dev\/sd[ab]/
to wzorzec do filtrowania tylko tych linii, które zaczynają się od/dev/sda
lub/dev/sdb
{ sum+=$5 }
dodaj piąte pole dla dowolnych dopasowań powyższego wzoruPrzydatne
awk
odniesienia można znaleźć na wiki Awk.info .źródło
źródło
size
,% used
orazavailable
. Nie tylko% wykorzystane. Również @mdpc ma lepszą metodę wyróżnienia dysku, ale jeśli chceszdf -hl | awk '/sda2/{print $2,$5,$4}'
Jeśli chcesz z alertami, robię to za pomocą IFTTT, Telegramu i WebHooks (które są bezpłatne)
źródło