Linuxové příkazy find
a du
přijde na vaši záchranu.
Pomocí příkazu du
du
příkaz se používá k odhadu využití prostoru pro soubory v systému Linux. Zobrazuje informace o využití disku.
Použijme du
zkontrolovat obsah /boot
:
# du
0 ./efi/EFI/centos
0 ./efi/EFI
0 ./efi
2400 ./grub2/i386-pc
3176 ./grub2/locale
2504 ./grub2/fonts
8096 ./grub2
4 ./grub
250556 .
Hodnoty zcela vlevo jsou využití disku, za kterým následuje konkrétní adresář zodpovědný za toto použití. Spodní řádek je souhrnem celého /boot/
adresář.
Zde je seznam důležitých du
možnosti
-h
,--human-readable
tiskne výstupy velikosti ve formátu čitelném pro člověka.-s
,--summarize
lze kombinovat s-h
získat přehled o používání adresáře ve formátu čitelném pro člověka.-a
,--all
uvádí velikosti všech souborů a adresářů v dané cestě k souboru. Můžete kombinovat s-h
Nyní v našem případě bychom chtěli zaznamenat využití místa v souboru a nejprve zkontrolovat největší, můžeme je seřadit pomocí sort
příkaz. Pokud chceme omezit náš výsledek, head
příkaz se bude hodit,
Získání největších souborů pomocí du
:
du -a / | sort -n -r | head -n 20
Výše uvedený příkaz používá du
Chcete-li zjistit využití disku, pak je obsah přesměrován k třídění, pak head vypíše pouze prvních 20 položek.
Výstup:
# du -a / | sort -n -r | head -n 20
du: cannot access ‘/proc/20633/task/20633/fd/3’: No such file or directory
du: cannot access ‘/proc/20633/task/20633/fdinfo/3’: No such file or directory
du: cannot access ‘/proc/20633/fd/4’: No such file or directory
du: cannot access ‘/proc/20633/fdinfo/4’: No such file or directory
43855216 /
38679004 /var
38558036 /var/log
38486524 /var/log/asterisk
18136900 /var/log/asterisk/full.prod-asterisk
15786756 /var/log/asterisk/debug.prod-asterisk
2408012 /var/log/asterisk/cdr-custom
2105416 /usr
2101960 /var/log/asterisk/cdr-csv/Master.csv
2101960 /var/log/asterisk/cdr-csv
2074504 /var/log/asterisk/cdr-custom/Master.csv
1014364 /opt
1002432 /usr/lib
635300 /home/centos
635300 /home
634528 /home/centos/debug.prod-asterisk
490704 /tmp
480260 /tmp/pip.log
403512 /opt/instana/agent
403512 /opt/instana
Než získáte seznam velkých souborů, často se objeví nějaké chyby. To často pochází buď ze souborů, ke kterým nemáte povolen přístup, nebo z jakéhokoli výstupu stderr. Použijte 2>/dev/null
ignorovat ty jako v tomto příkazu:
du -a / 2>/dev/null | sort -n -r | head -n 20
Pomocí příkazu find
Můžete použít find
k zacílení pouze na soubory ve vyhledávání a zjištění velikosti každého z nich, poté použijte kombinaci řazení a záhlaví k odfiltrování obsahu.
Příklad:
find / -type f -printf '%s %p\n' | sort -nr | head -10
Výše uvedený příkaz vyhledá všechny soubory v systému a poté vytiskne velikost a cestu pomocí %s and %p
směrnice . Výsledek je poté veden k seřazení, aby se filtroval od největšího po nejmenší, pak se hlava omezí na 10 výsledků. -n
je pro číselné řazení a -r
předáno třídění změní výsledek porovnání.
Výstup:
# find / -type f -printf '%s %p\n' | sort -nr | head -10
140737486266368 /proc/kcore
18595594900 /var/log/asterisk/full.prod-asterisk
16179399327 /var/log/asterisk/debug.prod-asterisk
2146986543 /var/log/asterisk/cdr-csv/Master.csv
2114553859 /var/log/asterisk/cdr-custom/Master.csv
649754355 /home/centos/debug.prod-asterisk
484122304 /tmp/pip.log
309011589 /var/log/asterisk/cdr-custom/Simple.csv
141488931 /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/lib/modules
106075056 /usr/lib/locale/locale-archive
Závěr
Z výše uvedeného vysvětlení jste se naučili, jak získat největší a největší soubory a adresáře v Linuxu. Také jsme se naučili, jak používat sort
příkaz k třídění vráceného výstupu a head
příkaz pouze omezit výsledek na číslo, které jsme zadali.
Chcete-li zjistit více o příkazech, které jsme použili, neváhejte použít manuálové stránky. Použijte tyto příkazy:
man du
man find
man sort
man head
man tail