Linux定时任务切割日志

一、需解决问题

Linux环境使用nohup启动jar包,输出的日志文件log.out,日志文件过大问题

二、编写shell脚本

创建splitLog.sh脚本文件

cd /usr/business
touch splitLog.sh
vim splitLog.sh

将下面的内容对应复制在splitLog.sh文件中

# Linux 切割日志文件
# 设置日志根路径,即日志文件log.out存放的路径,切割生成日志路径为根路径下的logs
log_path = /usr/business
# 设置切割文件格式:年月日
split_date = `date -d "0 day" "+%Y%m%d"`
cd $log_path
echo $log_path
echo $split_date

# 日志文件名:log.out,也可定义为 log.log文件,对应修改即可
# 以500M为基准切割日志到logs文件中,格式为:20200101/0000、20200101/0001,依次累加
do_split(){
    [ ! -d logs/${split_date} ] && mkdir -p logs/${split_date}
    split -b 500M -d -a 4 ./log.out ./logs/${split_date}/
    if [ $? -eq 0 ];then
        echo "split is finished!"
    else
        echo "split is failed!"
        exit 1
    fi
}

# 清空日志文件
do_del_log(){
    cat /dev/null > log.out
}

if do_split ;then
    do_del_log
    echo "nohup log is split Success"
else
    echo "nohup log is split Failure"
    exit 2
fi

保存即可
部分参数说明:
log_path:项目所在路径
split_date:切割所需文件路径格式,默认年月日
log.out:nohup生成的日志文件名

三、设置Linux定时器

脚本已经有了,就需要定时执行该脚本,进行日志切割。
1、在XShell中执行命令,进入编辑器

crontab -e

2、编辑内容
设置日志切割在每天23:55进行

#定时执行切割日志的脚本,每天23:55执行
55 23 * * * sh /usr/business/splitLog.sh

保存并退出(Esc :wq)编辑器即可。
3、查询定时器

crontab -l

四、简要说明

Linux添加定时切割日志的任务操作步骤
1.将 /usr/business 目录下的 log.out 日志备份
2.将修改好的 splitLog.sh 放置在 /usr/business 目录下
3.执行命令(类似vi编辑):crontab -e
4.在编辑器添加定时任务:55 23 * * * sh /usr/business/splitLog.sh
#定时执行切割日志的脚本,每天23:55执行
5.保存并且退出编辑器

OK,整理到这吧!

如有不正确之处,还望指正!书写不易,觉得有帮助就点个赞吧!☺☺☺

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

message丶小和尚

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值