我正在使用 Debian Squeeze。突然我开始面临一个问题,我的用户无法创建目录和其他此类任务。跑步mkdir abc
给了我
mkdir: cannot create directory 'abc': Disk quota exceeded
我的硬盘未满df -h
结果是
Filesystem Size Used Avail Use% Mounted on
/dev/md1 1.8T 39G 1.8T 3% /
tmpfs 7.8G 0 7.8G 0% /lib/init/rw
udev 7.8G 148K 7.8G 1% /dev
tmpfs 7.8G 0 7.8G 0% /dev/shm
/dev/md0 243M 31M 200M 14% /boot
uname -a
可能需要的输出是
Linux server 2.6.32-5-686-bigmem #1 SMP Sun Sep 23 10:27:25 UTC 2012 i686 GNU/Linux
笔记:如果我以 root 身份登录,那么一切都很好。此问题仅存在于特定用户
编辑:输出quota
Disk quotas for user user (uid 1000): none
的输出quota -g
Disk quotas for group user (gid 1000):
Filesystem blocks quota limit grace files quota limit grace
/dev/disk/by-uuid/26fa7362-fbbf-4a9e-af4d-da6c2744263c
8971324* 1048576 1048576 none 43784 0 0
答案1
我的问题是我超出了文件系统支持的 inode(文件条目)数量。命令
df -i
揭示了我的虚拟机中的问题:
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/vzfs 1500000 1500000 0 100% /
删除一些不必要的小文件或增加索引节点数量(更复杂)可以解决该问题。像这样的命令可以帮助找到哪些目录中有很多文件(在本例中是在 /var 下搜索):
find /var -type d -size +256k
答案2
磁盘未满,但该用户允许的磁盘空间已满。您需要检查quota(1)
,也许说服嫌疑人清理他们的垃圾,或者以善意的方式增加垃圾edquota(8)
。
答案3
我不使用 Debian Squeeze,但我遇到了类似的问题,也许这可以帮助其他人。我的用户帐户是针对学生的,因此它比我在家用计算机上运行 Linux 的速度要低得多,但仍然......在我运行的程序中,我将输出写入文件。我遇到了无限循环,不得不从程序中使用 cntrl-C 来取消它。发生这种情况后,我继续收到我的配额已满并且无法保存任何内容的错误。解决方案:删除我的循环正在写入的输出文件。删除它并修复我的循环后,我的配额再次被释放。
答案4
du -sch .[!.]* * |sort -h
在主目录(例如/usr2
)中使用此命令来检查哪些隐藏文件夹正在占用空间。
您还可以检查是否有包缓存。它可以安全地移除