实用shell脚本之磁盘清理

几天前测试环境抛出了异常,经查看是相关联的业务线接口挂了,遂和那边的同事联系,被告知“最近太忙了,忘了清理磁盘,磁盘满了,所以服务挂了”。被这个结果汗了一把之余,把给我以前写的部署在我们测试环境的磁盘清理脚本发给他了并告知了如何通过crontab定期执行这个脚本的方法云云。今天想了想,也发出来放网上吧,一来可以方便那些还在手动清理磁盘的同仁们,二来自己下次如果换了机器或工作环境,也可以直接拿来用,不用重写了。


#!/bin/sh

paths=(ebl-server ebl-schedule ebl-external)  #项目名,和第12行的“/export/log/${path}/”拼接成完整的项目路径。
usage=`df -lh|grep export|awk '{printf $5}'   #获取磁盘使用率
echo "usage percentage of disk is :${usage}"
if [[ usage > 60% ]]                          #当磁盘使用率达到某个设置值的时候,开始清理磁盘
then
 for path in ${paths[@]}
 do
   echo ${path} 
   sudo  rm -rf /export/log/${path}/*.2016*   #直接删除项目路径下的部分可以直接删除的日志
   sudo  cat /dev/null > /export/log/${path}/stdout.log&   #采用重定向的方式删除加锁了的日志。例如,stdout.log是tomcat运行期间加了锁的日志文件,服务运行期间是不能直接删除的。
 done
fi


你可能感兴趣的:(运维)