我遇到了一个奇怪的不一致(尽管我可能只是错过了一些非常基本的东西)。在运行一些在我的 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 /你的/路径