定时整理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。 
原文地址:https://www.cnblogs.com/wangtaobiu/p/14297128.html