首页 > 其他分享 >案例二十一备份30天之前的日志并压缩到指定目录下

案例二十一备份30天之前的日志并压缩到指定目录下

时间:2024-04-15 11:47:44浏览次数:16  
标签:info ago log backdir 备份 30 error 日志

#!/bin/bash
#备份目录
info_backdir=/backup/log/info/`date -d "30 day ago" +%F |awk -F "-" '{print $1"-"$2}'`
error_backdir=/backup/log/error/`date -d "30 day ago" +%F |awk -F "-" '{print $1"-"$2}'`
#获取info日志目录
info_log_dir=$(ls /data/logs/hzCloud/info/*/info-`date -d "30 day ago" +%F`.*.log |awk 'BEGIN{FS=OFS="/"}{NF--;}{print}' |head -n 1)
#获取error日志目录
error_log_dir=$(ls /data/logs/hzCloud/error/error-`date -d "30 day ago" +%F`.*.log |awk 'BEGIN{FS=OFS="/"}{NF--;}{print}' |head -n 1)

#判断目录是否存在,没有就创建
if [ ! -d "$info_backdir" ]; then
  mkdir -p $info_backdir
fi

if [ ! -d "$error_backdir" ]; then
  mkdir -p $error_backdir
fi

#压缩日志到备份目录
echo '开始备份日志并压缩...'
if [ -f $info_log_dir/info-`date -d "30 day ago" +%F`.*.log ];then 
      mv $info_log_dir/info-`date -d "30 day ago" +%F`.*.log $info_backdir/
      cd $info_backdir
      tar -zcvf $info_backdir/info-`date -d "30 day ago" +%F`.tar.gz info-`date -d "30 day ago" +%F`.*.log 
else
      echo "该info日志文件不存在"
fi

if [ -f $error_log_dir/error-`date -d "30 day ago" +%F`.*.log ];then
      mv $error_log_dir/error-`date -d "30 day ago" +%F`.*.log $error_backdir/
      cd $error_backdir
      tar -zcvf $error_backdir/error-`date -d "30 day ago" +%F`.tar.gz error-`date -d "30 day ago" +%F`.*.log
else
      echo "该error日志文件不存在"
fi
echo '压缩完毕...'

标签:info,ago,log,backdir,备份,30,error,日志
From: https://www.cnblogs.com/azhe6/p/18135600

相关文章

  • C / C++ 文件简单混编 + 轻量级日志系统使用
    在项目工程里面,不一定全部是c或者c++文件,有时候是混合一起,这个时候如果使用makefile编译的话,就要考虑兼容两种类型的文件编译了;实战经验如下:根据自己的风格制作响应的打印和日志记录,makefile编写如下:CC=gccCPP=g++#文件夹路径ROOTPATH=.INCLUDE=-I./cfg/inc-I$(......
  • Feign日志 - 自定义 info级别打印
    背景由于feign,默认只有debug的level,才能打印出日志。不太符合一般项目的loginfolevel的约定。因此决定自定义feign的log打印。目的在infolevel下,可以打印feign日志寻找线索打开openfeign的核心包目录寻找log相关类 feign-1.png通过FeignLoggerfactor......
  • 如何在 Pytest 中添加日志记录
    前言在编写和运行测试时,对于调试和排查问题,添加日志记录是一种非常有用的技术。Pytest是一个流行的Python测试框架,开发者通过pytest可以轻松地编写和运行各种测试。本文将介绍如何在Pytest中添加日志记录,以便更好地理解测试执行过程中的细节和问题。pytest.ini我们之前有......
  • 30 天精通 RxJS (19):实践范例 - 简易 Auto Complete 实作
    今天我们要做一个RxJS的经典范例-自动完成(AutoComplete),自动完成在实务上的应用非常广泛,几乎随处可见这样的功能,只要是跟表单、搜寻相关的都会看到。虽然是个很常见的功能,但多数的工程师都只是直接套套件来完成,很少有人会自己从头到尾把完整的逻辑写一次。如果有自己......
  • 30 天精通 RxJS (18):可观察运算符 - switchMap, mergeMap, concatMap
    今天我们要讲三个非常重要的operators,这三个operators在很多的RxJS相关的library的使用示例上都会看到。很多初学者在使用这些library时,看到这三个operators很可能就放弃了,但其实如果有把这个系列的文章完整看过的话,现在应该就能很好接受跟理解。OperatorsconcatMapconcat......
  • 《梁宁产品思维30讲》笔记分享
    通过最近对《梁宁产品思维30讲》课程的学习,理解,讨论,再总结。个人觉得收获很大,总结出课程大纲并夹带者一些理解以读书笔记的形式分享给大家。有理解不到位的地方,请各位读者海涵。最后感谢梁宁老师的知识分享,使得每个读者心中有一个产品意识的种子,在未来的某一天悄然发芽。发刊......
  • 我的20-30岁
    我在读初中的时候,听说:“这个社会需要有素质的人“,这句话的背后告诉我,我要努力成为一个有素质的人,同时告诉我这个社会上的人的素质还普遍不高,所以需要大量有素质的人,需要提升人们的素质。当我上了高中以后,听说“这个社会需要大学生”,这句话的背后告诉我,我要努力成为一名大学生,同......
  • 20240330 专项训练
    Tajan/序列问题专项save原题链接煤矿工地可以看成是由隧道连接挖煤点组成的无向图。为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处。于是矿主决定在某些挖煤点设立救援出口,使得无论哪一个挖煤点坍塌之后,其他挖煤点的工人都有一条道路通向救援......
  • 30 天精通 RxJS (17):Observable Operators - switch, mergeAll, concatAll
    今天我们要讲三个operators,这三个operators都是用来处理HigherOrderObservable。所谓的HigherOrderObservable就是指一个Observable送出的元素还是一个Observable,就像是二维数组一样,一个数组中的每个元素都是数组。如果用泛型来表达就像是Observable<Observab......
  • P1303 A*B Problem
    P1303A*BProblem题目给出两个非负整数,求它们的乘积。输入输入共两行,每行一个非负整数。输出输出一个非负整数表示乘积。样例输入12输出2提示每个非负整数不超过\(10^{2000}\)。思路根据题意,乘数的数据最大范围是\(10^{2000}\),需要使用高精度乘高精度的算......