У меня есть сдвоенный сервер, они сделаны из одних и тех же облачных образов 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
используется команда, чтобы проверить, какие файлы используются.