2021-07-02

假设某系统按天记录日志文件,即每天一个日志文件。随着系统的运行,日志文件越来越多。

app.log
app.log.2019-06-18
app.log.2019-06-17
app.log.2019-06-16
app.log.2019-06-15
app.log.2019-06-14
app.log.2019-06-13
app.log.2019-06-12
app.log.2019-06-11
app.log.2019-06-10

如何定期清除过期的日志呢?比如,只需要保留最近7天的日志备份?

对于linux系统,实现起来很方便:一个删除脚本 + crontab就可实现这个目标

  1. 创建自动清理日志的sheel脚本(假定log日志在目录/var/app下),autoCleanLog.sh
#!/bin/bash
 
searchPath=/var/app
cd ${searchPath}
 #app.log.* 日志的名字,可以改为*.log.*
declare -i total=`ls app.log.* | wc -l`
declare -i nums=$total-7
 
if [ "${nums}" -ge 1 ];then
    rm -rf `ls -tr app.log.* | head -${nums}`
fi
  1. 赋予脚本可执行权限
chmod +x autoCleanLog.sh

测试一下:

 sh log AutoClean.sh

步骤三:创建crontab定时任务

 crontab -e

进入编辑页面(第一次进入会让你选择编辑器,这里我们选择3[vim.basic]就ok)。

设置每天凌晨1点执行(假定清除脚本在目录/home/server/core/logs/app下),编辑crontab,增加如下行:

00 01 * * * /home/server/core/logs/app/logAutoClean.sh

可先设置五分钟执行一次,测试下脚本

*/5 * * * * /home/server/core/logs/app/logAutoClean.sh

如果定时任务不生效,重启下crond服务


# service crond restart  //重启服务

https://blog.csdn.net/hello_junz/article/details/92833122

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值