Linux设置定时任务去清除日志文件,在磁盘使用率达到80%以上时

目录

1、背景:

2、需求:Linux系统设置定时任务,去清理掉日志文件

设计思路:

3、开发shell脚本:

4、配置cron定时任务配置


1、背景:

在项目上线之后,应用程序就会运行起来,应用程序运行的过程会产生大量的日志,这时候日志文件所占的空间就会非常的巨大,这样会导致空间使用率非常大,这样会有宕机或者是应用程序停止运行的风险存在的,这里时候我们就需要去清理掉日志文件了来释放空间,从而降低宕机或者程序停止运行的风险。但是清理文件的动作是一个重复的操作,同时也是要求实时性非常高,但是日常的工作想做到实时性处理,这个是有难度的,得不到100%的保证,这时候就需要一个定时任务来实现这个动作,从而提升运维工作的质量,减少人工运维的工作量,如下就是介绍设置定时任务来清理日志文件。


2、需求:Linux系统设置定时任务,去清理掉日志文件

条件一:每天在晚上凌晨12点去清理掉7天前的日志文件;

条件二:如果日志文件所在的磁盘的空间使用率到达了80%以上清理掉3天之前的日志文件;

条件三:清理日志文件需包含业务日志,启动日志、错误日志等;


设计思路:

1、首先在Linux上设置定时任务的,所以我们需要采用cron工具;

2、需求是包含了多个条件的,并且存在判断的条件,所以需要利用shell脚本来实现;

3、清理的日志文件是根据时间来判断的需要利用到find命令来实现;


3、开发shell脚本:

1、撰写shell脚本:

[root@tomcat ~]# cat del_log.sh 
#!/bin/bash
#author:jiang
#time: 2022/04/15
#mtime: 2022/04/15

#函数
#空间使用率不超过80的操作
find_1 () {
find /tomcat/logs/ -mtime +7 -name "server*error.log" -exec rm -f {} \;
find /tomcat/logs/ -mtime +7 -name "catalina.out.log" -exec rm -f {} \;
find /tomcat/logs/ -mtime +7 -name "access_log.*.txt" -exec rm -f {} \;
find /tomcat/bin/ -mtime +7 -name "server01.log.*" -exec rm -f {} \;
}
#空间使用率超过了80%的操作
find_2 () {
find /tomcat/logs/ -mtime +3 -name "server*error.log" -exec rm -f {} \;
find /tomcat/logs/ -mtime +3 -name "catalina.out.log" -exec rm -f {} \;
find /tomcat/logs/ -mtime +3 -name "access_log.*.txt" -exec rm -f {} \;
find /tomcat/bin/ -mtime +3 -name "server01.log.*" -exec rm -f {} \;
}

#获取磁盘的空间大小
use=`df -h / | head -2 | tail -1 | awk -F" " '{print $5}' | awk -F% '{print $1}'`
#进行数值的判断
if [ $use -gt 80 ]
then
#执行操作
    find_2    
else
    find_1
fi

2、测试校验shell脚本语法是否有问题

[root@tomcat ~]# bash -x del_log.sh 
++ head -2
++ tail -1
++ df -h /
++ awk '-F ' '{print $5}'
++ awk -F% '{print $1}'
+ use=81
+ '[' 81 -gt 80 ']'
+ find_2
+ find /tomcat/logs/ -mtime +3 -name 'server*error.log' -exec rm -f '{}' ';'
+ find /tomcat/logs/ -mtime +3 -name catalina.out.log -exec rm -f '{}' ';'
+ find /tomcat/logs/ -mtime +3 -name 'access_log.*.txt' -exec rm -f '{}' ';'
+ find /tomcat/bin/ -mtime +3 -name 'server01.log.*' -exec rm -f '{}' ';'

执行没有报错说明shell语法是没有问题的。


4、配置cron定时任务配置

[root@tomcat ~]# crontab -l
01 00 * * * /bin/sh /root/del_log.sh

 配置文件之后就完成了,就等到时间进行验证了,如果正常使用之前可以修改时间进行验证的,这里就不具体描述了。


总结:如上就是日常工作需要配置定时任务去自动清理掉日志文件的场景,希望可以帮助大家,脚本的设计思路可以借鉴的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jiang0615csdn

你对鼓励是我最大的动力来源

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值