使用shell脚本找到占用磁盘空间最大的目录

开工第一天,早上来登录平台,发现报错——磁盘空间不足。

初步估计是某些服务日志没有及时清理。但是又不太清楚是哪个目录使用磁盘空间太大,于是写个脚本来找出使用空间较大的目录。

#!/bin/bash

#脚本运行示例:`sh dir_space_calc.sh /usr`

CHECK_DIRECTORIES=" $1"       #以传参方式确定目录

DATE=$(date '+%Y%m%d')
TIME=$(date '+%G-%m-%d %H:%M:%S')                 #获取时间信息

exec >> dir_space_$DATE.log            #将输出的结果重定向至日志

echo "各目录$CHECK_DIRECTORIES下大小排名前20的目录----$TIME"

for DIR_CHECK in $CHECK_DIRECTORIES    #各目录循环检查
do
  echo ""
  echo "目录$DIR_CHECK统计情况:"
  du -Sm $DIR_CHECK 2>/dev/null |      #循环统计各目录(不包含子目录)大小并排序输出
  sort -rn |                           #对统计结果排序
  sed '{21,$D; =}'|                    #取排名前20的目录
  sed 'N; s/\n/ /'|                    #对结果编号
  gawk '{printf $1 ":" "\t" $2"M" "\t" $3 "\n"}' #对结果进行规整,大小后面加M
done
echo ""
echo ""
exit

这样就能快速找出是哪些目录使磁盘空间太大了,结果拿出来一看,果然是因为服务日志没有及时清理的原因。

清理完日志,可以正常使用了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值