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

Найдите файлы или каталоги, которые занимают мой диск

У меня есть сдвоенный сервер, они сделаны из одних и тех же облачных образов Google. tunnel1 Я очистил файлы журнала, и дисковое пространство было возвращено tunnel2 Я сделал то же самое, но пробелы мне не возвращаются.

Я пробовал вручную искать с помощью du, Но это не работает.

# du -ah / | sort -n -r | head -n 5
du: cannot access '/proc/6033/task/6033/fd/4': No such file or directory
du: cannot access '/proc/6033/task/6033/fdinfo/4': No such file or directory
du: cannot access '/proc/6033/fd/3': No such file or directory
du: cannot access '/proc/6033/fdinfo/3': No such file or directory
1020K   /usr/lib/git-core/git-daemon
1020K   /usr/lib/git-core/git-credential-cache--daemon
1020K   /lib/modules/4.9.0-6-amd64/kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko
1020K   /lib/modules/4.9.0-6-amd64/kernel/drivers/media/usb/dvb-usb
1016K   /usr/lib/google-cloud-sdk/lib/googlecloudsdk/third_party/apis/compute_dev_alpha.json


# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            2.5G     0  2.5G   0% /dev
tmpfs           497M   33M  464M   7% /run
/dev/sda1        15G   12G  2.9G  80% /
tmpfs           2.5G     0  2.5G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.5G     0  2.5G   0% /sys/fs/cgroup

Это не работает, потому что вы используете -h флаг с du, который превращает такие значения, как "1024K" в "1M", и поскольку вы сортируете по числам, вы увидите, что 1022K больше 500M, потому что 1022> 500, единица измерения не интересует sort -n.

Правильная команда для этого будет примерно такой:

find / -type f -exec du -ahm {} + | sort -n -r | head -n 5

Прежде всего, он ищет только файлы (find -type f), а затем он использует размер блока = 1M ( -m-флаг на ду).

Скорее всего, у вас уже использовались "очищенные" журналы. Когда это происходит, дисковое пространство выглядит заполненным, потому что файловые дескрипторы все еще записываются. Это можно исправить, перезапустив процессы приложения, обрабатывающие файловые дескрипторы, как в вашем случае, вы сделали, перезагрузив компьютер. Вот почему fuser используется команда, чтобы проверить, какие файлы используются.