Заполнился диск с непонятно чем: 8 Tips to Solve Hard Drive Full for No Reason in Windows 10/8/7

сервер — диск заполнен, но не могу найти большие файлы или папки

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

 ncdu 1.8 ~ Используйте клавиши со стрелками для навигации, нажмите ? для помощи
--- / ------------------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- --
    5,5 ГБ [##########] /корень
    2,3 ГБ [####] /var
  628.6МиБ [#] /usr
  209.9МиБ [ ] /lib
   28,2 МБ [ ] / загрузка
    8,6 МБ [ ] /bin
    7,7МиБ [ ] /sbin
    6,6 МБ [ ] / и т. д.
  208.0КиБ [ ] /запуск
  112.0КиБ [ ] /tmp
   48,0 КБ [ ] /опция
e 16.0KiB [ ] /потеряно+найдено
    8,0 КБ [ ] /dev
    8.0 КБ [ ] /носитель
    4.0 КБ [ ] /lib64
e 4.0KiB [ ] /srv
e 4.0KiB [ ] /selinux
e 4.0KiB [ ] /mnt
e 4.0KiB [ ] /home
    0,0 Б [ ] /процесс
    0,0 Б [ ] /систем
@ 0.0 B [ ] initrd.img
@ 0,0 Б [ ] vmlinuz
 

Согласно ncdu я использую около 10 ГиБ из 128 ГиБ — это около 10% . Противоречие.

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

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

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

 # дф -ч
Используемый размер файловой системы Доступно Использование % Установлено на
/dev/xvda 119Г 113Г 0 100% /
udev 2.0G 8.0K 2.0G 1% /dev
tmpfs 788M 212K 788M 1%/запуск
нет 5.0M 0 5.0M 0% /run/lock
нет 2.0G 0 2.0G 0% /run/shm
 

Обновление

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

 $ sudo du -sch
8,7 м /бин
29M / загрузка
8.0K/dev
6,6 м / т. д.
4.0K /дом
0 /initrd.img
210M/либ
4.0K /lib64
16K /потеряно+найдено
8.0K / носитель
4,0 тыс./млн.
48K /опция
du: невозможно получить доступ к `/proc/4470/task/4470/fd/4': нет такого файла или каталога
du: невозможно получить доступ к `/proc/4470/task/4470/fdinfo/4': нет такого файла или каталога
du: невозможно получить доступ к `/proc/4470/fd/4': Нет такого файла или каталога
du: невозможно получить доступ к `/proc/4470/fdinfo/4': Нет такого файла или каталога
0 /процесс
5. 0G / корень
212K / пробег
7,8 млн /сбин
4.0K /селинукс
4.0K/ср
0 /систем
112K/тмп
629М/уср
2.3G/вар
0 /vmlinuz
всего 8,1 Гб
 

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

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

 $ sudo du -sch/root
96K /корень/Загрузки
2,5G / корень / Dropbox
36 КБ /root/nohup.out
4,0 КБ /root/npm-debug.log
4.0K /корень/только для чтения
980K /root/redis-2.6.16.tar.gz
228M /корень/tmp
всего 2,7 Гб
 

linux — df говорит, что диск заполнен, но это не

спросил

Изменено
1 год, 9 месяцев назад

Просмотрено
257 тысяч раз

На виртуализированном сервере под управлением Ubuntu 10. 04 df сообщает следующее:

 # df -h
Используемый размер файловой системы Доступно Использование % Установлено на
/dev/sda1 7.4G 7.0G 0 100%/
нет 498M 160K 498M 1% /dev
нет 500M 0 500M 0% /dev/shm
нет 500M 92K 500M 1% /var/run
нет 500M 0 500M 0% /var/lock
нет 500M 0 500M 0% /lib/init/rw
/dev/sda3 917G 305G 566G 36% /домашний
 

Это озадачивает меня по двум причинам: 1.) df говорит, что /dev/sda1, смонтированный в /, имеет емкость 7,4 гигабайта, из которых используется только 7,0 гигабайт, однако сообщает, что / заполнен на 100 процентов; и 2.) Я могу создавать файлы в /, поэтому на нем явно осталось место.

Возможно, имеет значение то, что каталог /www является символической ссылкой на /home/www, который находится в другом разделе (/dev/sda3, смонтированном в /home).

Кто-нибудь может предложить, что здесь происходит? Сервер, кажется, работает без проблем, но я хочу убедиться, что нет проблем с таблицей разделов, файловыми системами или чем-то еще, что может привести к взрыву (или взрыву) позже.

  • линукс
  • убунту
  • раздел

2

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

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

3

5% (по умолчанию) файловой системы зарезервировано для случаев, когда файловая система заполняется для предотвращения серьезных проблем. Ваша файловая система заполнена. Ничего катастрофического не происходит из-за 5%-го буфера — root может использовать этот буфер безопасности, и в вашей настройке у пользователей без полномочий root нет причин записывать в эту файловую систему.

Если у вас есть демоны, работающие от имени пользователя без полномочий root, но которым необходимо управлять файлами в этой файловой системе, все сломается. Одним из распространенных таких демонов является с именем 9.0008 . Другой — ntpd .

1

Возможно, у вас закончились иноды. Проверьте использование inode с помощью этой команды:

 df -i
 

Большинство файловых систем Linux (ext3, ext4) резервируют 5% пространства для использования только пользователем root.

Вы можете увидеть это, например,

 dumpe2fs /dev/sda1 | grep -я зарезервирован
 

Вы можете изменить зарезервированную сумму, используя:

 tune2fs -m 0 /dev/sda1
 

0 в этой команде означает процент от размера диска, поэтому, возможно, вы захотите оставить хотя бы 1%.

В большинстве случаев кажется, что сервер продолжает нормально работать — при условии, что все процессы запущены как «root».

1

В дополнение к уже предложенным причинам, в некоторых случаях это может быть также следующее:

  • другой диск монтируется "поверх" существующей папки, которая заполнена данными
  • du рассчитает потраченный размер смонтированного диска, а df покажет реально потраченный размер
  • Решение

  • : (если возможно) размонтируйте все диски без полномочий root и снова проверьте размер с помощью du -md 1 . Исправьте ситуацию, переместив скрытую папку в другое место или смонтировав в другом месте.

2

У меня была эта проблема, и я был сбит с толку тем фактом, что удаление различных больших файлов не улучшило ситуацию (не знал о 5% буфере), в любом случае следуя некоторым подсказкам здесь

Из корня спускались самые большие каталоги, обнаруженные путем многократного выполнения: -

 du -sh */
 

, пока я не нашел каталог для файлов журналов веб-сервера, в которых были абсолютно массивные журналы

, которые я усек с

:> lighttpd.error.log
 

внезапно df -h используется до 48%!

3

df -h округляет значения. Даже проценты округлены. Опустить -h и вы увидите более мелкие различия.

О. А ext3 и производные резервируют процент (по умолчанию 5%) для файловой системы именно для этого проблемного созвездия. Если ваша корневая файловая система действительно заполнена (осталось 0 байт), вы не сможете загрузить систему. Таким образом, зарезервированная часть предотвращает это.

2

Если у вас заканчивается место на /dev/shm и вы задаетесь вопросом, почему (учитывая фактическое используемое пространство ( 9[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] "
7931428864 1133806 руль /dev/shm/1600335920/subreducer/2/data/ibtmp1
12710576128 1133806 руль /dev/shm/1600335920/subreducer/2/tmp/#sql-temptable-114cee-8-e18.MAD
4173332480 1352445 руль /dev/shm/1600335920/subreducer/1/data/ibtmp1
13040484352 1352445 roel /dev/shm/1600335920/subreducer/1/tmp/#sql-temptable-14a2fd-8-eb3.MAD
9670602752 2298724 руль /dev/shm/1600338626/subreducer/2/tmp/#sql-temptable-231364-8-d2e.MAD

Первый файл занимает ~7,9ГБ, второй около 12,7 ГБ и т. д. Регулярное выражение подбирает все, что составляет 1 ГБ и более. Вы можете настроить регулярное выражение по мере необходимости.
Причиной может быть то, что мертвый процесс удерживает файл.
df -h не покажет проблему;

 Используемый размер файловой системы Доступно Использование % Установлено на
tmpfs 90G 90G 508K 100% /dev/shm
 

508K, но...

 $ du -shc | общая сумма
всего 46G
 

Вы видите смещение 90G <> 46G. Это в файлах выше.

Затем просто уничтожьте PID (kill -9PID), указанный во втором столбце выходных данных выше.

 $ убить -9 1133806
 

Результат:

 Используемый размер файловой системы Доступно Использование % Установлено
tmpfs 90G 72G 19G 80% /dev/shm
 

Отлично, место расчищено.

Причина, по которой все делается именно так, а не просто что-то вроде sudo lsof +L1 | grep '(удален)' | grep 'dev/shm' | awk '{напечатать $2}' | sudo xargs kill -9 заключается в том, что лежащие в основе процессы могут все еще работать. Если вы уверены, что это/они есть/нет, эта команда является потенциальной альтернативой в зависимости от вашего сценария. Это убьет все процессы, которые открыли «удаленные» файлы.

1

Я сделал большое обновление нескольких библиотек, и было много ненужных библиотек и временных файлов, поэтому я освобождаю место в папке «/» с помощью:

 apt-get install -f
sudo apt-очистить
 

И очистить свой мусор

1

проверьте /lost+found, у меня была система (centos 7) и некоторые файлы в /lost+found съели все место

Если ваш раздел - btrfs, может быть подтом, занимающий место. Файловая система btrfs может иметь много подтомов, только один из которых монтируется. Вы можете использовать btrfs subvolume list

для вывода списка всех подтомов и btrfs subvolume delete/ для удаления одного. Убедитесь, что вы не удалили тот, который установлен по умолчанию.

Поскольку это была первая страница моего поиска в Google, я надеюсь помочь кому-нибудь.