一、准备etcd数据备份脚本
#!/usr/bin/env bash
# 配置路径和变量
ETCD_WORK_PATH=/home/ccestack/archives/kubernetes # 修改为etcd数据的储存位置
BACKUP_DIR=${ETCD_WORK_PATH}/etcd
STATUS_FILE="/tmp/etcd_backup_status" # 状态文件供Zabbix读取
BACKUP_FILE_SIZE_FILE="/tmp/etcd_backup_file_size" # 备份文件大小供Zabbix读取
# 备份函数
etcd_data_backup(){
date_time=`date +%Y%m%d%H%M`
backup_file="${BACKUP_DIR}/etcd-snapshot-${date_time}.db"
export ETCDCTL_API=3
# 执行etcd备份命令
/usr/local/bin/etcdctl --cacert=/etc/etcd/ssl/etcd-ca.pem \
--cert=/etc/etcd/ssl/etcd.pem \
--key=/etc/etcd/ssl/etcd-key.pem \
--endpoints=10.46.242.129:2379,10.46.242.137:2379,10.46.242.131:2379 \
snapshot save $backup_file
# 检查备份是否成功
if [ $? -eq 0 ]; then
echo "1" > $STATUS_FILE # 1 表示成功
echo "$(stat -c %s $backup_file)" > $BACKUP_FILE_