диск заполнен, но не может найти большие файлы или папки

Сервер Ubuntu показывает мне, что я использую почти весь диск:

Usage of /:   95.5% of 118.12GB

И я пытаюсь найти большие папки и файлы, запустите ncdu:

ncdu 1.8 ~ Use the arrow keys to navigate, press ? for help                                                                                                                                                 
--- / ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    5.5GiB [##########] /root                                                                                                                                                                               
    2.3GiB [####      ] /var
  628.6MiB [#         ] /usr
  209.9MiB [          ] /lib
   28.2MiB [          ] /boot
    8.6MiB [          ] /bin
    7.7MiB [          ] /sbin
    6.6MiB [          ] /etc
  208.0KiB [          ] /run
  112.0KiB [          ] /tmp
   48.0KiB [          ] /opt
e  16.0KiB [          ] /lost+found
    8.0KiB [          ] /dev
    8.0KiB [          ] /media
    4.0KiB [          ] /lib64
e   4.0KiB [          ] /srv
e   4.0KiB [          ] /selinux
e   4.0KiB [          ] /mnt
e   4.0KiB [          ] /home
    0.0  B [          ] /proc
    0.0  B [          ] /sys
@   0.0  B [          ]  initrd.img
@   0.0  B [          ]  vmlinuz

Согласно ncdu Я использую около 10 GiB из 128 GiB - это около 10 %. Противоречие.

Как почистить мой ubutntu server без перезагрузки?

Я подумал, что ncdu лжет, и использовал другие приложения для поиска больших файлов и папок. Все они показывают тот же результат, что и ncdu.

И команда df -h показывает, что диск заполнен.

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda       119G  113G     0 100% /
udev            2.0G  8.0K  2.0G   1% /dev
tmpfs           788M  212K  788M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.0G     0  2.0G   0% /run/shm

Обновление

sudo du -sch /* Результат:

/# sudo du -sch /*
8.7M    /bin
29M /boot
8.0K    /dev
6.6M    /etc
4.0K    /home
0   /initrd.img
210M    /lib
4.0K    /lib64
16K /lost+found
8.0K    /media
4.0K    /mnt
48K /opt
du: cannot access `/proc/4470/task/4470/fd/4': No such file or directory
du: cannot access `/proc/4470/task/4470/fdinfo/4': No such file or directory
du: cannot access `/proc/4470/fd/4': No such file or directory
du: cannot access `/proc/4470/fdinfo/4': No such file or directory
0   /proc
5.0G    /root
212K    /run
7.8M    /sbin
4.0K    /selinux
4.0K    /srv
0   /sys
112K    /tmp
629M    /usr
2.3G    /var
0   /vmlinuz
8.1G    total

8.1G итого как обычно. Но я вижу cannot access строки, возможно, из-за них проблемы.

Затем я проверил самую большую папку в /. Это /root:

/# sudo du -sch /root/*
96K /root/Downloads
2.5G    /root/Dropbox
36K /root/nohup.out
4.0K    /root/npm-debug.log
4.0K    /root/readonly
980K    /root/redis-2.6.16.tar.gz
228M    /root/tmp
2.7G    total
20
задан 31 January 2014 в 09:33

7 ответов

Я сталкивался с той же проблемой на наших лабораторных машинах и с помощью этой команды

du -sch .[!.]* * |sort -h

мне удалось найти скрытые файлы, такие как внутри мусорных корзин пользователей, которые они еще не удалили.

Благодарю здесь , где я первоначально нашел этот ответ.

0
ответ дан 31 January 2014 в 09:33

Следующая команда покажет использование диска для / home каталога с --max-deep = 1

user@linux:~$ sudo du -h -d 1 /
0
ответ дан 31 January 2014 в 09:33
  • 1
    у меня были некоторые проблемы с моим VM, таким образом, я должен был повредить его, но я собираюсь пробовать это завтра – Daniel Guldberg Aaes 22 July 2015 в 22:47

Проверьте наличие удаленных файлов, которые по-прежнему удерживаются открытыми процессом:
sudo lsof | grep deleted | less

Это покажет pid и дескриптор файла. У меня была именно эта проблема на сервере, ничего в ncdu, кроме заполнения диска. Оказалось, что это был ночной процесс, который перемещал файлы в смонтированный общий ресурс samba и, похоже, иногда не корректно закрывал дескриптор файла.

Если вы нашли удаленные файлы и хотите их очистить, перезагрузка, вероятно, будет проще всего, если это приемлемо. Или вы можете попробовать убить процесс. Или, если вы уверены, что они не используются, вы можете вручную обнулить их примерно так:
> /proc/14487/fd/12

0
ответ дан 31 January 2014 в 09:33

Обязательно проверьте ваши дисковые крепления. Ни одно из решений, которые я видел здесь, не может идентифицировать пространство, занимаемое папкой, на которой размещено монтирование.

0
ответ дан 31 January 2014 в 09:33

У нас была такая же проблема, и оказалось, что изображения docker, хранящиеся в var / lib / docker

ncdu, не перечисляют их, так как они не видны пользователям. даже запуск ncdu под sudo не помогает.

Эта команда удаляет все существующие образы докеров ...

docker rmi $(docker images -a -q)

0
ответ дан 31 January 2014 в 09:33

Можно выполнить следующую команду для нахождения лучших 10 самых больших файлов:

find / -type f -printf '%s %p\n' 2>&1 
     | grep -v 'Permission denied' 
     | sort -nr 
     | head -10
0
ответ дан 8 October 2019 в 16:10

Возможно, процесс открыл большой файл, который впоследствии был удален. Вам придется убить этот процесс, чтобы освободить место. Вы можете определить процесс с помощью lsof. В Linux удаленные, но открытые файлы известны lsof и отмечены как (удаленные) в выводе lsof.

Вы можете проверить это с помощью sudo lsof +L1

см.: https://serverfault.com/questions/315181/df-says-disk-is-full-but-it- is-not

1
ответ дан 26 June 2020 в 08:17

Другие вопросы по тегам:

Похожие вопросы: