码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Linux定时任务切割日志


    Linux定时任务切割日志

      • 一、需解决问题
      • 二、编写shell脚本
      • 三、设置Linux定时器
      • 四、简要说明

    一、需解决问题

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

    二、编写shell脚本

    创建splitLog.sh脚本文件

    cd /usr/business
    touch splitLog.sh
    vim splitLog.sh
    
    • 1
    • 2
    • 3

    将下面的内容对应复制在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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

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

    三、设置Linux定时器

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

    crontab -e
    
    • 1

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

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

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

    crontab -l
    
    • 1

    四、简要说明

    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,整理到这吧!

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

  • 相关阅读:
    关注云栖大会的感受:从工业大脑到全面AI时代的进化
    用户态与内核态
    【AI设计模式】03-数据处理-流水线(Pipeline)模式
    【Redis】Redis在Linux与windows上的安装&基本操作语法
    vr电力作业安全培训覆盖三大板块,为学员提供高仿真的技能培训
    邱锡鹏神经网络怎么样,邱锡鹏神经网络答案
    ICLR20: Pre-GNN STRATEGIES FOR PRE-TRAINING GRAPH NEURAL NETWORKS
    网络安全(黑客)自学
    2022-11-17 mysql列存储引擎-聚合运算中间结果缓存磁盘文件以避免OOM-需求分析
    倾斜单体化模型技术实现
  • 原文地址:https://blog.csdn.net/qq_38254635/article/details/121265167
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号