linux定期清理日志脚本,一周清理一次

1、新建shell脚本

vim cleanlog.sh

2、编辑shell脚本,注意修改logpath和outpath,logpath是你日志所在的目录,outpath是记录删除记录的

#!/bin/sh
######################################################################
# 日志定时运行时间为每周日4点2分
# 删除7天之前的日志文件
# 日志文件时间是根据日志名称后面的日期来计算
# 运行脚本注意日志文件中是否有其他相同后缀的非日志文件和日志文件名称是否符合要求
# 其日志格式必须为 :pro-debug-0-2019-04-13.log , 即 *2019-04-13.log
######################################################################

#当前时间
currTime=$(date +"%Y-%m-%d %T")

#需要删除的日志文件所在目录
logpath=/home/local/logs

#删除日志的记录所在目录
outpath=/home/local/historycleanlog

#进入日志目录
cd $logpath


echo $currTime " 清理日志脚本执行开始 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>">> ${outpath}/catalina.out
#7天之前的日志文件删除
#获取7天之前的日期
del_date=`date +%Y-%m-%d -d "7 days ago"`
#获取文件名中的日期字符串,然后对比时间进行相应的操作
for n in `ls *.log -1`;do
    m=`echo $n | awk -F. '{print $(NF-1)}'`
    m=`echo ${m:0-10}`
    if [ ! $m ]; then
        continue
    fi
    if [[ $m < $del_date || $m = $del_date ]];then
        echo "file" $n "will be deleted." >> ${outpath}/catalina.out
        rm -rf $n
    fi
done

echo $currTime" 清理日志脚本执行结束 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>">> ${outpath}/catalina.out
echo "       ">> ${outpath}/catalina.out
echo "       ">> ${outpath}/catalina.out

3、给shell脚本赋予可执行权限

chmod +x cleanlog.sh

4、编辑定时任务

crontab -e

# Example of job definition:
# .---------------- minute (0 - 59)
# | .-------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed

  2 4 * * 0 /home/local/cleanlog.sh

5、重启定时器

service crond restart

6、查看定时任务

crontab -l

如果写的定时任务出现在定时任务列表,则成功,定时任务时间可以自己设置短一些进行测试

 

  • 5
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值