硬盘满了df -h

#!/bin/bash
dis=$(df -h|awk -F '[ %]+'  '/\/$/{print $5}')

check(){
    if [ $dis -ge 80 ];then
       echo "磁盘使用率超过80%,请注意!"
    else [ $dis -lt 80 ]
 echo "磁盘使用率未超过80%,运行正常"
    fi
}

check

一、确定是不是真的是磁盘空间不足

输入命令:df –lh 查看磁盘信息

很明显:Filesystem下的挂载点 /dev/xvda1 下的40G容量已经耗尽。

既然问题已经确定了,接下来就是处理了。

处理方法也很简单,就是删文件。

问:删除什么文件?

答:删除占用磁盘空间大,但又无用的文件。

问:什么是无用的文件?

答:如果对系统不熟悉的话,日志可能是你第一的下手目标。

二、如何定位最大文件目录

输入命令: cd / 进入根目录。

输入命令:du -h --max-depth=1 寻找当前目录,哪个文件夹占用空间最大

以上两个命令之后,可以看到 /usr 此路径占用较大磁盘空间,占用了21G。眼尖的同学可能看到了最后一项显示24G,它表示当前目录所有文件占用磁盘空间总和容量是24G。

如法炮制,几番判断后,定位到tomcat的日志文件。

三、如何定位最大文件

输入命令:ls –lhS 将文件以从大到小顺序展现

最终定位文件为:catalina.out 这个日志文件。

四、确认文件未被占用

删除文件谁都会:rm –f catalina.out 但是,最好确认下是否要下载下来让开发人员分析日志。

辛苦一阵找到文件,删除了很开心,输入命令:df –lh 发现磁盘空间仍是满的状态。跟开始完全没有区别。难道说是需要重启系统吗?linux会这么不友好么?

谷歌一下,发现了这么一段话:

在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink).然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。

输入命令:/usr/sbin/lsof|grep deleted 确认删除文件是否被占用

确实被占用。根据第二列提供的pid,输入命令:kill -9 13117 杀掉进程。

再次输入命令:df –lh

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值