linux 磁盘检查和定时清理并重启应用释放空间


linux磁盘空间用追加形式 echo “” > 日志文件,空间依旧得不到释放,此时是系统应用进程仍在消费日志文件,需要重启应用,

磁盘空间才得以释放,下面用一个shell定时检测某个目录磁盘占用达到一定值时,自动清理日志并重复检测释放真的释放磁盘空间,

如果没有释放,则重启应用,以tomcat为例

 

创建3个sh文件,如clean_logs.sh,tomcat_restart_by_clean.sh ,tomcat_stop_by_clean.sh,内容分别如下

tomcat_restart_by_clean.sh

#/bin/sh

#指定用户执行

 su – 用户<<EOF
#绝对地址
目录路径/start_tomcat.sh   
EOF

 tomcat_stop_by_clean.sh

#/bin/sh

 su – 用户<<EOF
#绝对地址
目录路径/stop_tomcat.sh   
EOF
 
clean_logs.sh
#/bin/sh

#清理日志
echo “” >指定文件  #绝对地址
rm -rf /指定文件 #绝对地址
 
#判断清理是否生效

disk_used=$(df -h|grep 指定目录路径挂载卷|awk ‘{ print $5}’) #$根据实际情况指定
let use_num=$(disk_used%”%”*)  # 取数值,根据disk_used的值,从右往左第一个字符%起截取所有字符
let limit_num=90  #定义极限值
# -ge 大于等于,-le 小于等于 -gt 大于 -lt 小于 -ne不等  -eq相等
 
if [ $use_num -ge $limit_num ];then
       echo $use_num 
       nohup 绝对路径/tomcat_stop_by_clean.sh &
       sleep 10
       #检查tomcat是否停止
       tomcat_pid=$(ps -ef|grep tomcat|grep 关键字)
       if [ $tomcat_pid -eq 1];then
            echo “tomcat stop not done…,pls check!”
       else
            #重启tomcat
            nohup 绝对路径/tomcat_restart_by_clean.sh &
            #检查tomcat进程
            tomcat_restart_pid=$(ps -ef|grep tomcat|grep 关键字)
            if [ $tomcat_restart_pid -eq 1];then
                echo “tomcat restart succ!”
            else
                echo “tomcat restart err, pls check!”
        fi
else
       echo “disk use normal”
fi    
 
 
 
 
 
 
 
 
 
 
 
 
 
   
  
 

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/275278.html

(0)
上一篇 2022年7月18日
下一篇 2022年7月18日

相关推荐

发表回复

登录后才能评论