我有一个 EC2 实例,当我登录时,我得到
mktemp: failed to create file via template '/tmp/.colorlsXXX': No space left on device
然而当我这样做时df -h
我看到
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.8G 4.2G 3.5G 55% /
devtmpfs 812M 16K 812M 1% /dev
tmpfs 828M 0 828M 0% /dev/shm
做事df -i
让我
/dev/xvda1 524288 524288 0 100% /
devtmpfs 207790 414 207376 1% /dev
tmpfs 211891 1 211890 1% /dev/shm
这里发生了什么?
答案1
您已经用尽了文件系统上所有可用的 inode。您可能在某个目录中有一个包含大量小文件的目录。您需要找到该目录并删除一些文件。
要搜索服务器中哪个文件夹正在达到 inode 限制,您可以运行以下命令:
查找 . -xdev -type f | cut -d“/”-f 2 | sort | uniq -c | sort -nr
命令来自这里
答案2
我尝试时发生此错误安装Ubuntu 桌面按照AWS知识中心的指示。
然后我发现这里如何找到所有包含大量小文件的目录:
for i in /*; do count=`sudo find $i | wc -l`; if [ $count -gt 10000 ]; then echo $i $count; fi; done
/lib 18982
/proc 35223
/sys 36490
/usr 253941
/var 14584
对每个可疑子目录再次运行该程序(对我来说它隐藏在/usr/*)。
但在删除这些子目录之前射频(如果您非常确定!),尝试安全地删除由其他软件包安装但不再需要的 Linux 软件包:
sudo apt-get -f install
sudo apt-get autoremove
跑步DF-我再次查看现在是否有更多空间。