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


20

Сервер 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

Просто подумайте, может проверить содержимое / var / log /, чтобы увидеть, если какие-либо журналы выросли в геометрической прогрессии.
Мордок

/ var / log составляет около 2 ГиБ. Это нормально
Максим Ефремов

1
Попытайтесь du -sch /*увидеть, какие корневые каталоги используют больше всего места, и спуститесь оттуда в места, использующие больше всего места.
DopeGhoti

@ DopeGhoti Я пытался, но видел то же самое о 8.1 GiBполной (добавил это для обновления). Не могу понять, где отдыхает100 GiB
Максим Ефремов

2
Я знаю, что ты не хочешь, но прикуси пулю и перезагрузись.
Дуггро

Ответы:


13

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

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

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

Отдайте сюда, где я изначально нашел этот ответ.


Изумительное решение!
АйванФ.

5

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

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

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


Это была моя проблема. У Tomcat был удаленный файл размером 80 ГБ. Перезапуска было достаточно, чтобы это исправить.
AFP_555

Как их удалить, если команды «перезагрузка» недостаточно?
блеск


2

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


Любое предложение? Я думаю, что это может быть моей проблемой
Eliethesaiyan


Как правило, проверьте существующие монтирования с помощью mount, затем добавьте второе монтирование для каждого из каталогов, в которых над ними установлены монтирования. Затем вы можете использовать обычные дисковые инструменты, как duна только что созданном монтировании, чтобы увидеть, является ли это виновником.
Рич Ремер

1

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

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

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

docker rmi $(docker images -a -q)


Та же проблема здесь. На самом деле даже docker system pruneне все нашел. Эта команда (которая предшествует удалению системы Docker) делает свое дело.
jscharf

1
недавно мы обнаружили, что docker system prune -a -fэто гораздо более тщательно
Baldy

0

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

find / -type f -printf '%s %p\n' 2>&1 
     | grep -v 'Permission denied' 
     | sort -nr 
     | head -10
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.