Пространство отсутствующего диска. Общее количество - Файлы! = Доступный

Так, я искал для ответа на это, но ничего не могу найти. Однажды у меня волшебно закончилось пространство в моей корневой файловой системе. Свободных 0 байтов. Я удалил некоторый старый VMs, чтобы дать мне пространство назад, таким образом, система будет на самом деле работать. Я выполнил Использование диска Анализатор, k4DirStat и df / du. Все как SU и математика не складывают. Это не 5% для Ext4 также.

Диск является Samsung EVO 840. Ext4. Ubuntu 16.04 LTS.

Вот результаты du и df:

XXX@YYY:/$ sudo du -chsx /
103G    /
103G    total

XXX@YYY:/$ sudo df /
Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sdf1      231977984 201086936  19084124  92% /

Так: 231G - 103G = 19G?

Озадаченный и спасибо за Вашу справку.

Решение: @steeldriver имел верное представление. У меня есть два внешних диска, подключенные для резервных заданий крона. Я размонтировал их. Разъединенный их. Viola, в точках монтирования были все еще файлы. Я предполагаю, что один из них стал размонтированным в какой-то момент, и задание резервного копирования заполнило корневую файловую систему. Я предполагаю, что должен буду изменить сценарий для проверки на существование внешних дисков перед синхронизацией.

Спасибо за быстрые ответы - это сообщество является фантастическим.

0
задан 25 September 2018 в 17:53

1 ответ

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

Пример:

Создайте большую проверку файла использование диска. Также используйте sync постараться не кэшировать эффекты:

$ sudo sync; df -h /dev/sda1
  Filesystem      Size  Used Avail Use% Mounted on
  /dev/sda1       886G  278G  564G  33% /
$ dd if=/dev/zero of=large count=1024 bs=10M
$ df -h /dev/sda1
  Filesystem      Size  Used Avail Use% Mounted on
  /dev/sda1       886G  288G  554G  35% /

Теперь откройте файл в другой оболочке, например, с tail и оставьте это открытым:

$ tail -f large

Вернитесь к первой оболочке и удалите файл и проверьте размер файловой системы:

$ rm large
$ sudo sync; df -h /dev/sda1
  Filesystem      Size  Used Avail Use% Mounted on
  /dev/sda1       886G  288G  554G  35% /
$ lsof /dev/sda1 | grep large
tail      15255 username    3r   REG    8,1 10737418240  5520283 /some/path/large (deleted)

lsof шоу, что файл был, удаляют, но он все еще используется некоторыми процессами. Теперь вернитесь к оболочке хвоста, и завершил его с Ctrl-C:

$ tail -f large 
^C
$ sudo sync; df -h /dev/sda1
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       886G  278G  564G  33% /

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

1
ответ дан 27 October 2019 в 10:10

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

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