在 VPS 上,当我按下我的用户下的选项卡时,我得到:
bash: cannot create temp file for here-document: No space left on device
但是在 root 下它可以正常工作,发生了什么?
答案1
当你按下 Tab 键时,会启动某些/特定的脚本
(可以定义多个,启动哪一个取决于当前在提示符下输入的命令).
这些脚本经常使用 /tmp 中的临时文件
您看到此问题的登录名要么是 /tmp 中的空间不足(例如配额),要么是根本没有配额,或者脚本(错误地?)尝试写入/处理太大的数据。
一般情况下,root 有较多配额或没有限制。
sudo-i cd /tmp du -h | 排序 -n | 更少
应该显示 /tmp 中的内容及其占用的空间。
还:
df -h --output=源,目标,ipcent,pcent 文件系统已挂载在 IUse% Use% ...
在“正常”情况下,/tmp 或 tmpfs 的 Use% 列下不应该有高数字(存在,取决于系统设置)。
答案2
检查文件系统的格式。我遇到的典型设置使用了以下设置:
- 格式 Ext2(好吧,现在可能有点过时了,可能是 ext4)
- 预留空间:5%。
最后一个意思是说,5% 的空间是为 uid 0 保留的。
如果您有一个 200GB 的驱动器和一个单独的分区,那么普通用户可以将其填充到 190GB。此时她将收到文件系统已满错误。Df 将报告使用率为 100%。
如果此时您以 root 身份尝试此操作,则可以再写入 5%。Df 将显示已满 100% 以上。
现在将其应用到您的问题中。文件系统的使用率是否超过 100%?
答案3
今天我们遇到了这个问题,结果Inode 的问题。
您应该运行df -i
以查看您使用的 Inode 数量。如果您的 Inode 数量IUse%
等于或接近100
,您应该找到尽可能多的小文件或零文件,然后将其全部删除。
您可以通过以下方式找到文件(归功于链接的文章):
for i in /*; do echo $i; find $i |wc -l; done