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

您的 inode 可能已用完。请尝试df -i

答案2

这可能有几个原因:

  • 进程正在写入一个大文件,因此磁盘使用情况统计信息在文件关闭之前不会更新。在这种情况下,您必须通过运行以下命令来检查总使用空间

sudo du -k /你的/路径

  • 有一个或多个已删除的文件仍在由某个进程使用,因此 df 实用程序在计算总磁盘使用量时不会考虑它们;您可以通过运行来找到这些文件

sudo lsof /|grep 已删除

  • 文件系统的 inode 用完了,您可以通过运行来检查

sudo df -i /你的/路径

相关内容