zoukankan      html  css  js  c++  java
  • 定时整理nohup输出内容

      使用nohup进行后台运行项目时会默认将输出的内容存放在nohup.out文件中,当然也可以通过'>'来自定义输出的位置,但会发现这个文件会越来越大,并不能自动清理,所以为了避免因文件过大或超出限度出现的问题,我们可以通过下边的方法解决:

      首先,将nohup.out文件内容进行切分存储,然后将nohup文件清空,这样不仅能保存输出的日志,还能解决文件过大的问题,最主要是不影响后期的日志写入.

    this_path=$(cd nohup.out所在目录;pwd)
    
    cd $this_path
    echo $this_path
    current_date=`date -d "-1 day" "+%Y%m%d"`
    echo $current_date
    split -b 65535000 -d -a 4 /../nohup.out  /切分后的保存路径/noh_logs/log_${current_date}_  # 指定切分的字节大小并保存在指定路径下
    
    cat /dev/null > nohup.out  # 清空nohup.out文件  

      将上述保存为.sh文件(注意设置可执行权限),通过定时任务定期执行即可.

    split参数简介:

    $ split --help
    用法:split [选项]... [输入 [前缀]]
    将输入内容拆分为固定大小的分片并输出到"前缀aa"、"前缀ab",...;
    默认以 1000 行为拆分单位,默认前缀为"x"。如果不指定文件,或
    者文件为"-",则从标准输入读取数据。
    
    长选项必须使用的参数对于短选项时也是必需使用的。
    -a, --suffix-length=N 指定后缀长度为N (默认为2)
    -b, --bytes=大小 指定每个输出文件的字节大小
    -C, --line-bytes=大小 指定每个输出文件里最大行字节大小
    -d, --numeric-suffixes 使用数字后缀代替字母后缀
    -l, --lines=数值 指定每个输出文件有多少行
    --verbose 在每个输出文件打开前输出文件特征
    --help 显示此帮助信息并退出
    --version 显示版本信息并退出
    
    SIZE 可以是一个可选的整数,后面跟着以下单位中的一个:
    KB 1000,K 1024,MB 1000*1000,M 1024*1024,还有 G、T、P、E、Z、Y。 
  • 相关阅读:
    Jenkins+ansible+Gitlab集成环境搭建
    Jenkins 和常用工具集成
    Jenkins 安装部署及应用
    ansible 及相关应用
    gitlab 快速安装
    [持续交付实践] 交付流水线设计:基于测试脚本的线上拨测监控系统
    gitlab CICD
    Nginx判断UserAgent添加referer
    Nginx判断变量的配置
    golang 入门之环境搭建
  • 原文地址:https://www.cnblogs.com/wangtaobiu/p/14297128.html
Copyright © 2011-2022 走看看