Linux脚本定时切割日志文件

1 篇文章 0 订阅
1 篇文章 0 订阅

 测试环境的日志没有定时切割,时间久了,文件比较大,不方便搜索查找。所以尝试写了下脚本。

1.脚本如下:

#!/bin/sh
log_dir='/app/logs/split'
monitor_file=$1
echo `date '+%Y-%m-%d %H:%M:%S'`'初始化切割日志文件为:'$monitor_file >> /app/logs/split/split.log
if [ ! $1 ]
then
    echo `date '+%Y-%m-%d %H:%M:%S'`'输入参数为空,使用默认路径:/app/wktrait/apache-tomcat-8.5.29/logs/catalina.out' >> /app/logs/split/split.log
    monitor_file=/app/XXX/apache-tomcat-8.5.29/logs/catalina.out #tomcat目录下的catalina.out文件的绝对路径
fi
log_name=`basename $monitor_file`
echo `date '+%Y-%m-%d %H:%M:%S'`'切割文件名称为:'$log_name   >> /app/logs/split/split.log
file_size=`du $monitor_file | awk '{print $1}'`
echo `date '+%Y-%m-%d %H:%M:%S'`'切割文件大小为:'$file_size   >> /app/logs/split/split.log
if [ $file_size -ge 1024000 ]
then
    echo `date '+%Y-%m-%d %H:%M:%S'`'文件大小大于 1024000 开始切割'   >> /app/logs/split/split.log
    if [ ! -d $log_dir ]
    then
        echo `date '+%Y-%m-%d %H:%M:%S'`'日志切割路径不存在,新建....'  >> /app/logs/split/split.log
        mkdir /app/logs/split  #创建保存切割文件目录,这个路径可以自行修改,保存到你想要的目录
    fi
    echo `date '+%Y-%m-%d %H:%M:%S'`'开始切割日志....'  >> /app/logs/split/split.log
    echo `date '+%Y-%m-%d %H:%M:%S'`'开始切割日志....'
    cp  $monitor_file  /app/logs/split/$log_name-`date +%Y%m%d%H%M%S`.log #保存日志文件
    echo `date '+%Y-%m-%d %H:%M:%S'`'日志切割完成。'   >> /app/logs/split/split.log
    echo `date '+%Y-%m-%d %H:%M:%S'`'日志切割完成。'
    echo `date '+%Y-%m-%d-%H:%M:%S'`'文件切割' >> /app/logs/split/split.log #记录切割日志
    echo `date '+%Y-%m-%d %H:%M:%S'`'开始清空源文件...' >> /app/logs/split/split.log
    echo `date '+%Y-%m-%d %H:%M:%S'`'开始清空源文件...'
    echo "" > $monitor_file  #清空tomcat的log/catalina.out文件内容
    echo `date '+%Y-%m-%d %H:%M:%S'`'清空源文件完成。'  >> /app/logs/split/split.log
    echo `date '+%Y-%m-%d %H:%M:%S'`'清空源文件完成。'
fi

 脚本基本能实现切割功能,下一步就是定时了。网上搜索的是用的。

2. 用 crontab -e 编辑定时器代码

   输入  crontab -e  命令在打开的窗口填写如下定时任务

    */1 * * * *  sh /app/script/splitLog.sh  /app/XXX/apache-tomcat-8.5.29/logs/catalina.out

    然后保存退出。

参考链接:  https://www.jb51.net/article/97116.htm

同时放上一个定时的介绍: https://www.cnblogs.com/mingforyou/p/3930636.html

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值