linux centos 系统提示No space left on device错误 centos清理硬盘空间

一、问题描述

线上的一个centos系统,硬盘满了,通过以下方式清理后,启动程序还是会提示No space left on device错误,具体请看解决方法,这里讲下如何清理硬盘:


1、查看系统磁盘是否已满

df -h

看哪个目录use到100%,我这里是删除过了的结果。

2、查看具体哪个目录占用了大量空间

du -h --max-depth=1 | sort -nr //统计当前目录大小,并按大小排序,按数字降序排序 

 可以看到root目录下有3.9G占用

查看GB以上文件夹目录并且排序,可以使用以下命令:

du -h --max-depth=1 |grep 'G' |sort

 

3、进入root目录中继续排查哪个目录占用占用最大

cd /root
ls -lh

 重复以上步骤,将大文件全找出来,如果想看目录下哪个文件占用最多,直接使用如下命令即可:

du -a /root/ -h | sort -n -r | head -n 100

 如果想看某个目录下文件统计,可通过如下命令 

for i in /*; do echo $i; find $i | wc -l; done

(如果确定是某个目录下面,则/转换为该目录绝对路径,如/xxx/xxx,则使用for i in /xxx/xxx*; do echo $i; find $i | wc -l; done)

然后通过以下命令删除

rm -rf xxx

二、解决方法

上面操作后,通过

df -h 

查询空间确实降下来了,可是还是提示No space left on device,此时再通过 

df -i

 查看了下inodes,发现根目录下的inodes值使用率为100%了

发现/目录下显示还是100%,通过以下命令查看/目录下文件占用

du -sh /*

 大概了解了一下du和df的区别:


du: disk usage 磁盘空间,是文件夹里所有文件大小叠加在一起计算的。
df: disk free 磁盘空闲空间,是通过统计磁盘中空闲计算的。

进入到/root目录下执行

du -sh * 

 注意,如果删除后,再次运行命令 df -h ,发现目录空间还是占满了的话,要把使用这个xxx文件的所属进程干掉,空间才能恢复正常!!

通过以下命令查看已删除空间却没有释放的进程

lsof -n |grep deleted

提示找不到命令时,需要安装下

yum install lsof -y

找到进程编号,然后

kill -9  xxx

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值