Так, я искал для ответа на это, но ничего не могу найти. Однажды у меня волшебно закончилось пространство в моей корневой файловой системе. Свободных 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, в точках монтирования были все еще файлы. Я предполагаю, что один из них стал размонтированным в какой-то момент, и задание резервного копирования заполнило корневую файловую систему. Я предполагаю, что должен буду изменить сценарий для проверки на существование внешних дисков перед синхронизацией.
Спасибо за быстрые ответы - это сообщество является фантастическим.
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% /
Назад к нормальному. Таким образом, Вы должны найти открытые файлы и завершили процессы, содержащие дескриптор файла.