Назад | Перейти на главную страницу

Использование диска в LVM: какие каталоги содержат больше всего данных?

У нас есть следующие тома:

$ df -h
Filesystem                     Size  Used Avail Use% Mounted on
devtmpfs                       3.8G     0  3.8G   0% /dev
tmpfs                          3.9G     0  3.9G   0% /dev/shm
tmpfs                          3.9G  377M  3.5G  10% /run
tmpfs                          3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/mapper/rhel-root           13G   12G  1.3G  91% /
/dev/sda1                     1014M  274M  741M  27% /boot
/dev/mapper/vg_data1-lv_www1    25G   18G  8.0G  69% /var/www
/dev/mapper/vg_data1-lv_mysql  8.0G  6.5G  1.6G  81% /var/lib/mysql
/dev/mapper/vg_data1-lv_logs1  5.0G  3.4G  1.7G  68% /var/log
10.40.33.40:/var/www/html/mnt   35G   23G   13G  65% /var/www/html/mnt
tmpfs                          781M     0  781M   0% /run/user/1000

Так объем /dev/mapper/rhel-root использует 91% памяти. Теперь я хотел бы узнать, где больше всего данных /, но только в том объеме, а не во всем. Могу ли я сделать это как-нибудь легко? Я бы хотел сделать что-то вроде du -sch /dev/mapper/rhel-root/*, то есть / без /boot, /var/www, /var/lib/mysql и так далее.

В конце концов, я хотел бы найти потенциально большие и ненужные (забытые) файлы, которые занимают место в томе. /dev/mapper/rhel-root, так что я могу удалить их, если возможно.

Для меня одна из следующих команд решает цель:

  1. Перейдите в корневой каталог и запустите

дю -к | sort -n | perl -ne 'если (/ ^ (\ d +) \ s + (.$) /) {$ l = журнал ($ 1 + .1); $ m = int ($ l / журнал (1024)); printf ("% 6.1f \ t% s \ t% 25s% s \ n", ($ 1 / (2 ** (10$ m))), (("K", "M", "G", "T", "P") [$ m]), ""х (1,5$ 1), $ 2);} '

  1. Топ 20 в текущей директории и подкаталоге

найти . -xdev -printf "% s% p \ n" | sort -nr | head -20

  1. Топ-30 в каталоге и подкаталоге / opt

du -a / opt | sort -n -r | голова -n 30