No space left on device 原因是磁盘空间满了
1.查看是否存在未被清除句柄的僵尸文件。这些文件实际上已经被删除,但是有服务程序在使用这些文件,导致这些文件一直被占用,无法释放磁盘空间。如果这些文件过多,会占用很大的磁盘空间。
ps -ef | grep 文件名
查看进程,如果进程不重要kill掉
kill -9 进程id
2.由于安装系统时设计不合理,有些分区分的过小,以及网络通讯故障等造成日志文件迅速增长等其他原因都可能表现为磁盘空间满,造成无法读写磁盘,应用程序无法执行等。下面就给你支几招(以/home空间满为例):
查看空间满的文件系统的inodes消耗
#df – i /home
如果还有大量inode可用,说明大文件占用空间,否则是可能大量小文件占用空间。
找出占用空间较大的目录
查看/home 占用的空间
#du –hs /home
查看/home 下占用空间超过1000m
#du |awk ‘$1>;2000’
找出占用空间较大的文件
#find /home –size +2000k
找出最近修改或创建的文件
先touch一个你想要的时间的文件如下:
# touch -t 08190800 test
#find /home -newer test -print
删除系统日志等
删除生成 core,mbox等文件
#find / -name core|xargs rm –rf
删除日志
#rm -rf /var/log/*
对分区做链接
在有空间的分区,对没有空间分区做链接
#ln -s /home /usr/home
找出耗费大量的空间的进程
根据不同的应用,找出对应的进程。分析原因。
检查并修复文件系统
#fsck –y /home
重起机器
有了以上的方法,应该可以解决大部分问题,但关键还是安装时要规划好分区。另外发现磁盘满时,不能急,小心操作,认真分析原因,然后小心应对。需要注意,以上方法不需要顺序执行,有的可能一招封喉,有的可能需要数招并用,删除操作一定要小心。如果还不行,只有采取增加硬盘,重新安装系统等"硬"办法了。
还可以:
cd
du -h --max-depth=1|grep G|sort -n
找到最大的那个目录后进入该目录
再运行du -h --max-depth=1|grep G|-n
如果没有结果可以运行 du -h --max-depth=1|grep M|sort -n
找出来以后看是否有用的文件
没用就删掉