(我在 Solaris 服务器上使用 UFS 文件系统。我在该机器上拥有 root 权限,但在包含有问题的光盘的机器上却没有。)
当我尝试执行任何操作(写入文件、删除文件等)时,都会收到“超出磁盘配额”错误。系统管理不善,很多旧备份文件都闲置在那里;我可以清理它们,但甚至连腾出一点喘息空间都困难。
我的磁盘空间和 inode 数量都已满:
#> df -hk
Filesystem 1K-blocks Used Available Use% Mounted on
server.com:/storage 52231997 52231997 0 100% /opt/files
#> df -i
Filesystem INodes IUsed IFree IUse% Mounted on
server.com:/storage 169224 169224 0 100% /opt/files
我发现的所有解决方案都涉及写入/dev/null
或""
将文件大小清零,然后删除该文件。但是,这两种解决方案都不起作用:
#> ls -l September22014.tgz
-rw-r--r-- 1 userA groupA 283443184 Sep 2 2014 September22014.tgz
#> cp /dev/null September22014.tgz
cp: cannot create regular file `September22014.tgz': Disc quota exceeded
#> echo "" > September22014.tgz
bash: September22014.tgz: Disc quota exceeded
#> > September22014.tgz
bash: September22014.tgz: Disc quota exceeded
答案1
首先,您没有注意到正在使用的 Solaris 版本,或者 NFS 服务器/设备是什么(如果已知)。
您不应该尝试将文件清空,而是应该将其删除。
供将来参考,使用 UFS 时,尽管还有“可用”空间,但 inode 仍可能会用完。解决的唯一方法是使用更多 inode 选项重新更新它,或使用没有该限制的 FS。即:Solaris 较新版本上的 ZFS。