专业的编程技术博客社区

网站首页 > 博客文章 正文

etcd,minio实用的备份脚本(etcd备份还原原理)

baijin 2024-10-26 08:10:11 博客文章 11 ℃ 0 评论

1.etcd数据库备份脚本

#!/bin/bash
# author wade.qu
# date 2024-06-17
set -e
#定义了很多变量,按实际情况填写IP相关的变量,备份路径变量也可根据自己喜好定义。
master_ip=172.17.2.5
BackupDir="/data/buckup/etcd-bak"
ETCD_SSL_PATH="/data/buckup/pki/etcd"               #这个是证书存放路径,根据实际情况定义
#===================================
ETCD_ENDPOINTS="172.17.2.5:2379"      #这个是检查点,根据实际情况定义      
CACERT=$ETCD_SSL_PATH/ca.crt             #三个etcd用的证书,名称很可能也不一样,有的是ca.crt这样的,实际情况定义
CERT=$ETCD_SSL_PATH/server.crt
KEY=$ETCD_SSL_PATH/server.key
mkdir -p $BackupDir                      #建立前面定义的备份文件存放路径,否则脚本失败。
#etctctl这个可执行文件的路径,如果是在系统变量内,留etcdctl就可以
ETCDCTL_API=3 etcdctl \
--cacert="${CACERT}" \
--cert="${CERT}" \
--key="${KEY}" \
--endpoints=${ETCD_ENDPOINTS} \
snapshot save $BackupDir/etcd-snapshot-`date +%Y%m%d`.db  #按日期命名备份文件,例如,脚本执行后生成的文件名称会是这样的:etcd-snapshot-20220927.db
# 备份保留30天
find $BackupDir/ -name *.db -mtime +30 -exec rm -f {} \;
echo  "`date` etcd cluster is success backup !"

添加定时任务

30 22 * * * bash /data/buckup/etcd_back.sh 

2.minio存储桶备份

#!/bin/bash
source /etc/profile
minio_back(){
  dates=`date +%Y%m%d`
  if [ -d "/data/buckup/minio-bak/${dates}" ];then
    echo "目录已经存在"
  else
    echo "创建目录"
    mkdir -p /data/buckup/minio-bak/${dates}
  fi
  #执行备份命令
  mc cp -r mizudaminio/mizuda-share-center /data/buckup/minio-bak/${dates}
  wait
  tar -czvf /data/buckup/minio-bak/${dates}.tar.gz /data/buckup/minio-bak/${dates}
  wait
  rm -fr /data/buckup/minio-bak/${dates}
  if [ $? -eq 0 ]; then
    echo "恭喜备份已经完成"
  else
    echo "备份失败"
  fi
}
minio_delete_oldbak_file(){
  find /data/buckup/minio-bak -type f -mtime +5 -print -exec rm {} \;
}

minio_back
minio_delete_oldbak_file

添加定时任务

30 23 * * * bash /data/buckup/minio.sh

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表