linux df и OSError: [Errno 28] На устройстве не осталось места

linux df и OSError: [Errno 28] На устройстве не осталось места

У меня странная непоследовательность (хотя, возможно, я просто упускаю что-то очень простое). При запуске какого-то скрипта, который генерирует небольшие файлы на моем диске I, я постоянно получаю эту ошибку:

OSError: [Errno 28] No space left on device

Но когда я запускаю df -h, я получаю:

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              15G   12G  2.2G  85% /
udev                  502M  144K  502M   1% /dev
none                  502M     0  502M   0% /dev/shm
none                  502M   72K  502M   1% /var/run
none                  502M     0  502M   0% /var/lock
none                  502M     0  502M   0% /lib/init/rw

Так у меня мало места на диске или нет?

Спасибо за любой вклад!

решение1

Вероятно, у вас закончились иноды. Попробуйте df -i.

решение2

Это может иметь несколько причин:

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

sudo du -k /ваш/путь

  • есть один или несколько удаленных файлов, которые все еще используются каким-либо процессом, поэтому утилита df не учитывает их при расчете общего использования диска; вы можете найти эти файлы, запустив

sudo lsof / | grep удален

  • в файловой системе закончились inode, это можно проверить, запустив

sudo df -i /ваш/путь

Связанный контент