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    
 
以上sh文件使用linux 定制任务执行
crontab -e  编辑
#* * * * * 分别对应分,时,天,月,年
* * * * * /bin/bash 绝对路径/clean_logs.sh
 crontab -l 查看定时任务
 
 
 
 
 
 
 
 
 
 
 
   
  
 
posted @ 2022-07-18 21:28  遇事不决,量子力学  阅读(515)  评论(0)    收藏  举报