linux系统碰盘满了怎么清理,Linux系统不停的报磁盘已满应该如何处理

各位小伙伴,以下是我的一些处理方法,与大家共享。

e7ace04dc247817fcf83c113f0419425.png

今天上传了一个13kb的文件,提示磁盘已满,不能上传。df -h 查了一下,如下图:

59cbbcf667f8829d2f47c3ce0261103a.png

磁盘慢了

由于是开发环境,堆满了大量的日志没删,10g了,于是我删除了一些很久的日志,8g。奇怪的事情发生了,命令查看磁盘,依然是100%。linux还是跟windows区别挺大的么,windows我们删除了文件,马上就有磁盘释放了。想到的就是删除的文件并不能释放出磁盘(当时只是猜测),于是lsof | grep deleted 查了一下。

果断地把这些进程都kill掉了,哎呦喂,奇迹发生了,df -h 查看:

已经从100%降到了13%。问题解决了,于是找度娘查了下linux删除的机制,大致如下:

一个文件在文件系统中的存放分为两个部分:数据部分和指针部分,指针位于文件系统的meta-data中,数据被删除后(例如我们的日志文件),这个指针就从meta-data中清除了,而数据部分存储在磁盘中,数据对应的指针从meta-data中清除后,文件数据部分占用的空间就可以被覆盖并写入新的内容,之所以出现删除log文件后,空间还没释放,就是因为httpd进程还在一直向这个文件写入内容,导致虽然删除了log文件,但文件对应的指针部分由于进程锁定,并未从meta-data中清除,而由于指针并未被删除,那么系统内核就认为文件并未被删除,因此通过df命令查询空间并未释放也就不足为奇了。一般说来不会出现删除文件后空间不释放的情况,但是也存在例外,比如文件被进程锁定,或者有进程一直在向这个文件写数据等等,要理解这个问题,就需要知道Linux下文件的存储机制和存储结构。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值