磁盘空间占满,如何排查?

  1. 首先df -h可以查看磁盘的使用情况
  2. du -h --max-depth=1 可以查看当前目录下每一个一级目录占用空间的大小
  3. 如果用了以上的方法,还是没有发现,究竟是哪个文件占用了这么多空间,那么极有可能是因为:某个进程在写入文件的时候,日志被人rm删除了。 这样是无法用ls或者文件管理命令找到这个文件的。
解决方法
  • top命令查看当前有哪些活跃进程
  • lsof -p 进程id,查看某个进程打开的文件描述符
为什么进程写入文件时,文件被rm但还占用空间?
  • 首先明白linux中每个文件都有i_count和i_link;
  • i_count表示文件被进程的引用次数;
  • i_link表示硬链接个数
  • rm命令本质上是减少i_link的个数
  • 只有i_count和i_link都为0时,才表示该文件被彻底删除
  • 如果有进程引用该文件,rm掉这个文件之后,i_link为0但是i_count不为0,所以文件还没占用空间。
那么如果正确的清理日志文件?

echo " " > 文件名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值