我正在EC2上运行一个Linux实例(我已经安装了MongoDB和node.js),并且出现这个错误:
Cannot write: No space left on device
我想我已经跟踪到这个文件,这里是df输出
Filesystem 1K-blocks Used Available Use% Mounted on /dev/xvda1 1032088 1032088 0 100% /
问题是,我不知道这个文件是什么,我也不知道这个文件是否是问题。
所以我的问题是:如何解决“没有留下设备空间”的错误?
那个文件, /是你的根目录。 如果这是df唯一的文件系统,那么就是一切。 你有一个1GB的文件系统,它已经100%满了。 你可以开始弄清楚它是如何使用的:
sudo du -x / | sort -n | tail -40
然后,您可以使用占用最多空间的path进行replace。 (由于sort ,他们会在最后,命令可能需要一些时间。)
如果您正在运行EBS启动实例(build议),则可以使用本文中介绍的过程来增加根(/)卷的大小:
在正在运行的EBS引导EC2实例上调整根磁盘的大小
http://alestic.com/2010/02/ec2-resize-running-ebs-root
如果您正在运行实例存储实例(不推荐),则不能更改根磁盘的大小。 您必须删除文件或将文件移动到临时存储(例如,/ mnt),或者附加EBS卷并将文件移到那里。
下面是我写的一篇文章,介绍了如何将MySQL数据库从根磁盘移动到EBS卷:
在Amazon EC2上使用EBS运行MySQL
http://aws.amazon.com/articles/1663
…并考虑转移到EBS启动实例。 有很多原因为什么你会后来感谢你自己。
我知道我在这个线程回答近5年后,但它可能有助于某人,我有同样的问题,我有m4.xlarge实例df-h告诉/ dev / xvda1已满, – 100%
Filesystem Size Used Avail Use% Mounted on udev 7.9G 0 7.9G 0% /dev tmpfs 1.6G 177M 1.4G 12% /run /dev/xvda1 7.7G 7.7G 0 100% / tmpfs 7.9G 0 7.9G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup tmpfs 1.6G 0 1.6G 0% /run/user/1000
我试图解决这里的步骤
sudo find / -type f -printf '%12s %p\n' 2>/dev/null|awk '{if($1>999999999)print $0;}'
帮助我知道这是在我所有的空间的docker集装箱,所以我把我所有的容器我的dockerregistry然后做sudo rm -rf / var / lib / docker /它清理了我的空间:)希望它可以帮助某人:)