开工第一天,早上来登录平台,发现报错——磁盘空间不足。
初步估计是某些服务日志没有及时清理。但是又不太清楚是哪个目录使用磁盘空间太大,于是写个脚本来找出使用空间较大的目录。
#!/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
这样就能快速找出是哪些目录使磁盘空间太大了,结果拿出来一看,果然是因为服务日志没有及时清理的原因。
清理完日志,可以正常使用了。