首页 > 其他分享 >按时间区分备份日志

按时间区分备份日志

时间:2022-10-09 11:31:34浏览次数:65  
标签:rr ## backdir 区分 echo awk 日志 备份 day

脚本如下

#!/bin/bash

## 源目录项目名称,需根据目录名进行调整
project_name=/logs/alarm/

## 源目录
basedir=/opt/logs/$project_name

## 备份目录
backdir=/opt/back_logs/

## 定义readme文件 记录备份文件
rr=/opt/back_logs/readme

## 创建备份目录
if [ ! -e $backdir ];then
mkdir -p $backdir
fi

## 一个月前
to_date=`date -d "-1 month " +%Y-%m-%d`

## 源目录赋值变量
cd $basedir
for file in `ls $basedir`
do
## 截取日志属性时间值,按截取年月日创建目录,将源日志备份到对应时间的目录下
y=`echo $file | awk -F'-' '{printf "%s-%s-%s\n",$3,$4,$5}' | awk -F'.' '{print $1}' |awk -F '-' '{print $1}'`
m=`echo $file | awk -F'-' '{printf "%s-%s-%s\n",$3,$4,$5}' | awk -F'.' '{print $1}' |awk -F '-' '{print $2}'`
day=`echo $file | awk -F'-' '{printf "%s-%s-%s\n",$3,$4,$5}' | awk -F'.' '{print $1}' |awk -F '-' '{print $3}'`
#ls |cut -c16-25

## 一个月前
if [[ $y-$m-$day > $to_date ]];then break;fi
#echo $y-$m-$day $to_date
if [ ! -e $backdir$file ];then
tree $backdir >> $rr
mkdir -p $backdir/$y/$m/$day/$project_name/ &> /dev/null
cp $file $backdir/$y/$m/$day/$project_name/ &> /dev/null
sum=`ls $backdir/$y/$m/$day$project_name/ |wc -l` &> /dev/null

if [ $? -eq 0 ];then
echo -en "----- \t\t\t" >> $rr
echo `date` >> $rr
echo -en "----- \t\t\t" >> $rr
echo "$backdir$y/$m$project_name$day The backup OK" "Number of package $sum" >> $rr
else
echo -en "----- \t\t\t" >> $rr
echo `date` >> $rr
echo -en "----- \t\t\t" >> $rr
echo "$backdir$y/$m$project_name$day The backup NO" "Number of package $sum" >> $rr
fi
fi
done

## 备份日志上传到obs
/opt/case/obsutil/obsutil cp -r -f $backdir$y obs://obs-log-archive/data/ >> $rr 2>&1 && echo "数据上传到obs成功" >> $rr || echo "数据上传到obs失败" >> $rr
echo `date +%Y/%m/%d/%T` "script over!" >> $rr

演示创建对应的日志路径与日志名,用于脚本测试

# cd basedir && touch alarm-2021-09-{01..31}.{1..31}.log.tar

标签:rr,##,backdir,区分,echo,awk,日志,备份,day
From: https://blog.51cto.com/u_11410590/5739996

相关文章

  • db2 备份/恢复概念
    一、备份的概念1、为什么要备份数据丢失的情况:1、介质或存储器故障2、数据库实例崩溃3、应用程序错误4、灾难:地震、火灾等5、人员误操作2、备份的层次3、备份的类型1、脱机/......
  • db2 数据库与表空间备份与恢复
    一、数据库与表空间备份1、备份语法2、详解database-alias指定要备份的数据库的别名username/usingpassword指定备份数据库所使用的用户和用户密码DBPARTITIONNUMdb-parti......
  • Flume和Logstash 都可以做日志收集,那有什么区别呢
      这个问题诞生于我和朋友的聊天,我问它最近在做什么,他说Flume,咱不懂呀,偷偷的百度了一下。短暂的看到也是做日志收集的,这让我瞬间想到了logstash,就是 ELK 组合中的一员......
  • python学习日志
    python学习日志语法简单和传统的C/C++、Java、C#等语言相比,Python对代码格式的要求没有那么严格,这种宽松使得用户在编写代码时比较舒服,不用在细枝末节上花费太多精力......
  • 日志管理与分析权威指南 pdf
    高清扫描版下载链接:https://pan.baidu.com/s/1WAbVHBdw39F75_eG6bBZ3w点击这里获取提取码 ......
  • 日志从Kafka到Loki的N种方式​
    最近群里有小伙伴有说到自己的日志存储路径先是从客户端到Kafka,再通过消费kafka到ElasticSearch。现在要将ES换成Loki面临需要同时支持Kafka和Loki插件的工具。小白查了下当......
  • windows10 java系统hang死_干货案例:坑爹cmd 执行jar不打印日志,服务端hang(卡住)问题...
    java系统hang死_干货案例:坑爹cmd执行jar不打印日志,服务端hang(卡住)问题...关键是设置cmd属性,去掉快速编辑模式......
  • KingbaseES V8R6运维案例之---wal日志解析DML操作
    案例说明:通过sys_waldump解析DML操作,获取DML操作的日志条目具体内容。适用版本:KingbaseESV8R3/R6一、DML事务操作对应的wal日志文件#查看当前online的wal日志文件p......
  • KingbaseES V8R6运维案例之---sys_waldump解析wal日志
    案例说明:wal日志文件记录了,事务操作的redo日志信息,由于wal日志文件是二进制文件,无法直接读取其文件内容。sys_waldump可以解决这个问题,通过sys_waldump来解析wal日志来......
  • KingbaseES V8R6集群运维案例之---自动清理集群主库wal日志
    ​案例说明:在KingbaseESV8R6主备流复制的集群,配置复制槽(replicationslot)。复制槽提供了一种自动化的方法来确保主控机在所有的后备机收到WAL段之前不会移除它们,并......