微服务日志备份和汇聚脚本

微服务日志备份和汇聚脚本,第1张

微服务日志备份和汇聚脚本

1.日志备份脚本

#!/bin/bash
# 日志归档处理

#group_code=`awk -F":" '{if( == "app"){print  }}' /etc/group`
#USER_LIST=`awk -F":" '{if( == '${group_code}'){print  }}' /etc/passwd`
USER_LIST=("user" "commons" "advertise" "company" "cronjobcloud" "eurekasv" "filemanage" "manage" "messageserve"  "order" "pay" "product" "recruit" "gateway" "infomanage" "marketing")

# 当前日期
nowStr=`date +%Y-%m-%d`
#近7天的日期数组
dayStrs=(`date +%Y-%m-%d` `date -d -1days '+%Y-%m-%d'` `date -d -2days '+%Y-%m-%d'` `date -d -3days '+%Y-%m-%d'` `date -d -4days '+%Y-%m-%d'` `date -d -5days '+%Y-%m-%d'` `date -d -6days '+%Y-%m-%d'`)

#获取本机IP
local_ip=`/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print }'|tr -d "addr:"`
local_ip=`echo "${local_ip}" | tr "n" "_"`
local_ip=${local_ip%_*}
echo ${local_ip}

function del_old_log()
{
        Folder_A="/home//app/log"


        for file_a in ${Folder_A}}
                isContent="true"
                if [[ $temp_file == *logback* ]];then
                        isContent=""
                fi
                for dayS in ${dayStrs[@]}
                  do
                           if [[ $temp_file == *$dayS* ]];then
                                         isContent="true"
                           fi
                  done
                if [ "$isContent" == "" ]
                  then
                      tar_file_name=$tar_file_name" "$temp_file
                  fi
        done

        echo $tar_file_name
}

for x in ${USER_LIST[@]}
  do
      cd /home/${x}/app/log/
      # 删除之前归档的压缩包
	  rm -rf ${x}_${local_ip}*.tar.gz
	  # 找到要归档的文件名
	  file_name=$(tar_file $x)
	  #压缩归档
	  if [ "$file_name" == "" ]; then
	      echo "没有需要归档的日志"
	  else
	      tar -zcf ${x}_${local_ip}_${nowStr}.tar.gz $file_name
	  fi
	  #删除归档后的文件
      del_old_log $x
  done

2.汇聚脚本(将不同节点上的日志汇聚到一块)

group_code=`awk -F":" '{if( == "app"){print  }}' /etc/group`
USER_LIST=`awk -F":" '{if( == '${group_code}'){print  }}' /etc/passwd`
nowStr=`date +%Y-%m-%d`
USER=root
PASSWORD=******
service_ip=("172.18.55.**","172.18.46.**","172.18.46.**")

#先删除原来的
cd /home/logbackups/
rm -rf *.tar.gz

for ip in ${service_ip[@]}
  do
      for x in ${USER_LIST}
        do
lftp -u ${USER},${PASSWORD} sftp://${ip} << EOM
cd /home/$x/app/log/
lcd /home/logbackups/
mget *.tar.gz
bye
EOM
        done
   done

for x in ${USER_LIST}
  do
lftp -u root,ymHc0601Ecs sftp://172.18.22.137 << EOM
cd /home/$x/app/log/
lcd /home/logbackups/
mget *.tar.gz
bye
EOM
  done
  

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5624402.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存