Rabbitmq备份

#!/bin/bash


date=`date +"%Y%m%d%H%M%S"`
Backup_dir=/data/backup/rabbitmq


# 企微相关配置
db_type="RabbitMQ"
db_env="宜昌城发生产环境"
host=$(hostname -I|awk '{print $1}')
# 测试企微webhook地址
webhook_url="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=******"

#备份开始时间
start_time=$(date "+%F %X")


kubectl get pods -A|grep -i rabbitmq|grep -v bigdata|grep Running |awk '{print $1,$2}' > $Backup_dir/rabbitmq.txt

while read dy
do
namespace=`echo $dy|awk '{print $1}'`
pods=`echo $dy|awk '{print $2}'`

kubectl exec -it -n $namespace $pods bash -- rabbitmqctl list_queues  > $Backup_dir/${pods}_list_queues_${date}.txt
kubectl exec -it -n $namespace $pods bash -- rabbitmqctl list_vhosts  > $Backup_dir/${pods}_list_vhosts_${date}.txt
kubectl exec -it -n $namespace $pods bash -- rabbitmqctl list_users  > $Backup_dir/${pods}_list_users_${date}.txt

break
done < $Backup_dir/rabbitmq.txt


#获取服务器IP
host=$(hostname -I|awk '{print $1}')

# 备份列表
filename=$(ls $Backup_dir |grep  list_users_${date}|awk '{print $1}')
bucket_list=${filename%%_*}

#判断文件是否存在,存在则备份成功
IsFiles=$(ls $Backup_dir |grep ${date}|wc -l|awk '{print $1}')

if [ ${IsFiles} -lt 0 ];then
  bak_status_col='warning'
  bk_status="Failed"
else
  bak_status_col='info'
  bk_status="Succes"
fi

#备份结束时间
end_time=$(date "+%F %X")

contents='{
  "msgtype": "markdown",
  "markdown": {
      "content": "
          # '${db_env}' '${db_type}' 备份监控 \\n
          >备份状态: <font color=\"'${bak_status_col}'\">'${bk_status}'</font> \\n
          >备份主机: <font color=\"comment\">'${host}'</font> \\n
          >备份列表: <font color=\"comment\">'${bucket_list}'</font> \\n
          >备份开始时间: <font color=\"comment\">'${start_time}'</font>\\n
          >备份结束时间: <font color=\"comment\">'${end_time}'</font>\\n
          >备份目录: <font color=\"comment\">'${Backup_dir}'</font> \\n  "
      }
}'

echo -e ${contents} > ${Backup_dir}/webhook.json
curl -X POST -i -H 'Content-Type: application/json' -d @${Backup_dir}/webhook.json ${webhook_url}

posted @ 2023-01-28 09:34  小星奕的快乐  阅读(11)  评论(0)    收藏  举报