Pro správce systému nebo vývojáře je nezbytné vědět, kolik místa zabírá soubor nebo složka na oddílu. Tyto znalosti vám umožňují plánovat upgrady úložiště, spravovat a otáčet soubory a provádět další nezbytné úlohy správce systému. Můj oblíbený příkaz pro tento typ sběru dat je du
příkaz.
du
příkaz shrnuje využití disku pro každý soubor a rekurzivně pro každý adresář. Nabízí mnoho užitečných možností jednotlivě nebo ve správných kombinacích. Všechny možnosti naleznete na stránce du man. Zde je jeden z mých oblíbených triků s du
.
Použít du
Obvykle rád zkontroluji využití více adresářů současně. Tímto způsobem vím, které adresáře jsou mými největšími přestupky. Předpokládejme, že chci zkontrolovat všechny adresáře v /var
. Zde je můj standardní du
příkaz s dlouhými možnostmi pro přehlednost:
$ du --all --human-readable \
--one-file-system \
--max-depth=1 /var
Zde je rozpis každé možnosti (s krátkou verzí v závorkách):
-
--all
(-a
):Tisk všech souborů a složek. --human-readable
(-h
):Velikosti tisku ve velkých kusech, nikoli v bajtech (například 1 kB místo 1024).--one-file-system
(-x
):Přeskakování adresářů na různých souborových systémech. Výsledkem je, že if/var/log
je připojen samostatně, nepočítá se, protože je na samostatném souborovém systému. Tím je zajištěno, že uvidím použitý prostor na disku pouze pod jednou cestou k adresáři a nikoli na fyzických médiích.--max-depth=1
(-d
):Vytiskne součet za adresář (nebo soubor pomocí--all
), pouze pokud je v tomto případě o jednu úroveň nižší než/var
. Pokud použijete2
místo toho vytiskne složky o dvě úrovně níže/var
. Na rozdíl od--one-file-system
u této možnosti zůstává nahlášená velikost stejná; Jen nemusím vidět tolik výstupu.
Zde je ukázkový výstup z mého obvyklého du
příkaz:
$ du -ahx --max-depth=1 /var
0 /var/lock
0 /var/mail
0 /var/run
12K /var/kerberos
12K /var/sieve
135M /var/spool
1.6G /var/log
181M /var/cache
20K /var/db
336K /var/named
3.7G /var/vmail
4.0K /var/adm
4.0K /var/crash
4.0K /var/ftp
4.0K /var/games
4.0K /var/gopher
4.0K /var/local
4.0K /var/nis
4.0K /var/opt
4.0K /var/preserve
4.0K /var/.updated
4.0K /var/yp
4.2G /var/lib
44K /var/tmp
8.0K /var/empty
9.7G /var
I když je tento výstup dobrý, bylo by ještě lepší ho seřadit podle kapacity. Tímto způsobem je ještě snazší číst na první pohled.
[ Podívejte se na 10 výukových programů, které zdokonalí své dovednosti v oblasti příkazového řádku. ]
Trik:Seřaďte výstup
Dobrou zprávou je, že mohu třídit výstup v libovolném pořadí, když předám sort -k1 -rh
jako vstup. Zde je například to, co dostanu, když spustím příkaz pro seřazení výstupu podle prvního sloupce (kapacita):
$ du -ahx --max-depth=1 /var | sort -k1 -rh
9.7G /var
4.2G /var/lib
3.7G /var/vmail
1.6G /var/log
181M /var/cache
135M /var/spool
336K /var/named
44K /var/tmp
20K /var/db
12K /var/sieve
12K /var/kerberos
8.0K /var/empty
4.0K /var/yp
4.0K /var/.updated
4.0K /var/preserve
4.0K /var/opt
4.0K /var/nis
4.0K /var/local
4.0K /var/gopher
4.0K /var/games
4.0K /var/ftp
4.0K /var/crash
4.0K /var/adm
0 /var/run
0 /var/mail
0 /var/lock
Sledování využití disku
Existují také grafické nástroje pro kontrolu místa na disku, jako je ncdu
příkaz, ale pro mě je to du
příkaz je jednoduchý, přímý a efektivní. Doufám, že vám tento rychlý tip pomůže vylepšit základy vašeho systémového správce. Tyto možnosti mi výrazně usnadnily shromažďování dat o kapacitě souborů a když je zadáte jako alias do vašeho .bashrc, stane se to samou přirozeností.