AWS EC2 – 设备上没有空间

我有一个EC2实例,当我login时,我得到了

mktemp: failed to create file via template '/tmp/.colorlsXXX': No space left on device 

但是,当我做了,我明白了

 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 

这里发生了什么?

您已经耗尽了文件系统上可用的所有inode。 你可能有一个目录的地方与一个公吨的小文件。 您需要find该目录并删除一些文件。

要search服务器的哪个文件夹正在占用inode限制,可以运行以下命令:

找 。 -xdev -type f | 剪下-d“/”-f 2 | sorting| uniq -c | sort -nr

从这里采取命令

在尝试按照AWS知识中心的指示安装ubuntu-desktop时 ,发生了这个错误。

然后,我在这里find了如何find所有这些具有大量小文件的目录:

 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 / *下 )。

但是,在使用rm -rf删除这些子目录之前(如果您完全确定!),请尝试安全地删除由其他软件包安装但不再需要的Linux软件包:

 sudo apt-get -f install sudo apt-get autoremove 

再次运行df -i ,看看现在是否有更多空间。