我有一个运行Ubuntu 14.04的EC2节点。 在今天上午的部署中,我从git fetch收到以下错误消息:
error: unable to create temporary file: No space left on device
我login到服务器,df -h表示我有足够的空间:
$ df -h Filesystem Size Used Avail Use% Mounted on udev 492M 12K 492M 1% /dev tmpfs 100M 488K 99M 1% /run /dev/xvda1 7.8G 4.9G 2.5G 67% / none 4.0K 0 4.0K 0% /sys/fs/cgroup none 5.0M 0 5.0M 0% /run/lock none 497M 4.0K 497M 1% /run/shm none 100M 0 100M 0% /run/user
我在这里误读df吗? 我的理解是,EC2上的/ tmp驻留在/ dev / xvda1上,但也许我错了?
validation系统inode:
root #df -i /
如果使用率接近100%,请尝试使用
xdiskusage /
了解什么是占领inodes。
可悲的是,一旦文件系统被创build,就无法增加文件系统上的inode数量。
除了LVM,它可以通过resize2fs扩展inode的数量
提到: 没有空间留在设备上,而有足够的空间
这可能是一些应用程序正在创造大量的小文件,并彻底耗尽inode。 你可能会寻找这样的stream氓应用程序,并删除不需要的文件。
inode限制不能dynamic增加,但是如果使用LVM,则可能会考虑增加卷的大小,否则请进行备份,并创build指定更高inode限制的新文件系统。
您可以使用find命令来扫描具有批量文件的目录,并且可以根据您的标准执行清理
find /dev/xvda1 -type f -size +1M -exec ls -ltrh {} \; 当你find需要执行清理的地方或目录时,在源代码目录path中进行清理
find /dev/xvda1/dummy -type f -size +1M -mtime +120 -exec rm -rf {} \;
在上面,我正在从一个名为dummy的目录中删除较旧的文件