![linux df и OSError: [Errno 28] На устройстве не осталось места](https://rvso.com/image/1253293/linux%20df%20%D0%B8%20OSError%3A%20%5BErrno%2028%5D%20%D0%9D%D0%B0%20%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B5%20%D0%BD%D0%B5%20%D0%BE%D1%81%D1%82%D0%B0%D0%BB%D0%BE%D1%81%D1%8C%20%D0%BC%D0%B5%D1%81%D1%82%D0%B0.png)
У меня странная непоследовательность (хотя, возможно, я просто упускаю что-то очень простое). При запуске какого-то скрипта, который генерирует небольшие файлы на моем диске 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 /ваш/путь