analizuj użycie dysku, ignorując montowania

67

Ubuntu narzeka, że ​​mój główny system plików jest prawie pełny, ale kiedy go używam baobab(inaczej „Disk Usage Analyzer”) lub du -hpodsumowuje użycie wszystkich innych zamontowanych systemów plików.

Jak mogę wykluczyć inne systemy plików, które są zamontowane w różnych podkatalogach?

drevicko
źródło

Odpowiedzi:

72

baobab: Jeśli chcesz używać baobabu, jest to możliwe poprzez zamontowanie głównego systemu plików w innym miejscu i przeanalizowanie go. W ten sposób inne systemy plików nie zostaną zamontowane w nowym mocowaniu głównym, a wszelkie pliki ukryte przez mocowanie pod nim /zostaną odkryte i uwzględnione w analizie.

Zakładając, że główny system plików jest włączony sda1( dfpowie ci, które to urządzenie):

mkdir root-rebound
sudo mount /dev/sda1 root-rebound
baobab root-rebound

a potem posprzątaj, kiedy skończysz:

sudo umount root-rebound
rmdir root-rebound

Alternatywnie możesz ręcznie odmontować wymienione systemy plików. Możesz również przeskanować tylko folder domowy, ponieważ najprawdopodobniej będzie on zawierał źródło nadmiernego wykorzystania miejsca na dysku.

du ma dwie opcje, które są w stanie zapobiec zliczaniu innych systemów plików:

 -x, --one-file-system
         skip directories on different file systems
     --exclude=PATTERN
         exclude files that match PATTERN

A zatem,

du -hx

zignoruje wszystkie inne zamontowane systemy plików lub

du -h --exclude /media

zignoruje wszystkie pliki, w /mediaktórych zamontowano większość systemów plików.

Jeśli używasz du, sortowanie w taki sposób, aby największe rzeczy pojawiały się na dole listy, może pomóc w rozszyfrowaniu danych wyjściowych. na przykład:

du -hx | sort -h
Cumulus 007
źródło
2
Fajnie, nie widziałem opcji -x. Znalazłem też inny sposób: możesz gdzieś zamontować system plików, a następnie użyć du lub baobab do jego analizy. Uważam też, że warto to robić du -hx | sort -h, chociaż łatwiej jest interpretować baobab.
drevicko
@ Cumulos007 - jeśli to fajne, dodam moje rozwiązanie i sugestię do twojej odpowiedzi i zaakceptuję
drevicko
Dla mnie OK!
Cumulus007
1
@ wim nie, wersja GUI nie wydaje się używać opcji -x du. Montowanie głównego systemu plików gdzieś indziej działa - to właśnie robię obecnie (:
drevicko
1
du -kx | sort -npo mojej stronie
Alejandro Teixeira Muñoz
6

W zależności od typu systemu plików montowanie głównego systemu plików w punkcie instalacji może nie być możliwe /. Otrzymasz coś podobnego do tego:

mount: /dev/sda1 already mounted or /mnt busy
mount: according to mtab, /dev/sda1 is mounted on /

Montowanie tylko do odczytu ( -o ro) może pomóc. Jeśli to się nie powiedzie, użyj podłączenia binda:

mount --bind / /mnt

Po zamontowaniu użyj dowolnego narzędzia do analizy użycia dysku, tj du -sh * | sort -h

Bram
źródło
3

Ten raport o błędach wyjaśnia, w jaki sposób można skonfigurować baobab, aby ignorował katalogi. Niestety nie możesz tego zrobić w samej aplikacji, ale musisz użyć dconf-editori otworzyć org.gnome.baobab.preferences. Tutaj znajdziesz przedmiot excluded-uris; zmień to na ['file:///path/to/ignore'](działało dla mnie z pojedynczymi cudzysłowami).

geira
źródło
To tak naprawdę nie odpowiada na pytanie, ale jest to przydatne informacje, a ktoś, kto szuka takich informacji, może tutaj skończyć, więc jestem entuzjastycznie nastawiony (:
drevicko
Odpowiada na pytanie, jak ignorować montowania w baobabie (poprzez wykluczenie punktów montowania) bez konieczności ponownego instalowania partycji root. Na drugą połowę pytania (du) odpowiedziano już w przyjętym poście.
geira
2

Baobab próbuje dać ci kontrolę nad urządzeniami / partycjami, które skanujesz - idź do Edit->Preferences. Zwykle chcesz skanować urządzenie tylko w punkcie instalacji /. Nie rozpoznaje to jednak wszystkich typów linków / montowań / powiązań , więc ostatecznie Baobab może nadal dawać mylące wyniki, jeśli masz nietrywialną konfigurację.


Na przykład du, wywołana następująca funkcja powłoki dutopwyświetli najwyższy poziom określonego folderu (lub bieżącego folderu). Dzięki temu możesz sondować podfoldery pojedynczo.

function dutop() { du --max-depth=1 --one-file-system -h $@ |sort -h; }

Prawdopodobnie zgłosi to nieistotne błędy „Odmowa zezwolenia”, jeśli je zastosujesz /, ale możesz rozwiązać te problemy, myśląc o tym, jak poniżej, i poprosi o twoje hasło (jeśli nie dostarczyłeś go ostatnio).

function sudutop() { sudo du --max-depth=1 --one-file-system -h $@ |sort -h; }

W przypadku dużych folderów może to chwilę potrwać. Nie będą zgłaszać żadnego statusu przyrostowego, ponieważ operacja sortowania buforuje wszystkie wyniki pośrednie. Można zrezygnować z Ctrl-C, jeśli masz dość czekania.

nobar
źródło