shell脚本定期删除日志文件

某系统按天记录日志,文件增多后需定期清除过期日志。在Linux系统中,可通过创建自动清理日志的shell脚本并赋予其可执行权限,再用crontab创建定期任务,每天凌晨执行脚本,就能自动删除7天前备份的日志文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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}

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


2. 赋予脚本可执行权限

chmod +x autoCleanLog.sh

3.采用crontab创建定期任务

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

00 01 * * * /var/app/autoCleanLog.sh

让改动的crontab立即生效

sudo /etc/init.d/cron restart

这样就大功告成,此脚本每天凌晨就会启动一次,自动删除7天前备份的log文件。
 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值