Kubernetes集群的etcd数据备份脚本
etcd-backup.sh
#!/bin/bash
# 配置环境变量
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
export ETCDCTL_API=3
export ETCD_ENDPOINTS="https://127.0.0.1:2379"
export ETCD_CA_FILE="/etc/kubernetes/pki/etcd/ca.crt"
export ETCD_CERT_FILE="/etc/kubernetes/pki/etcd/server.crt"
export ETCD_KEY_FILE="/etc/kubernetes/pki/etcd/server.key"
export ETCDCTL_TIMEOUT="300s"
# 备份路径(提前创建:mkdir -p /backup/etcd)
BACKUP_DIR="/backup/etcd"
SNAPSHOT_FILE="${BACKUP_DIR}/etcd-snapshot-$(date +%Y%m%d%H%M%S).db"
# 创建快照
etcdctl --endpoints=${ETCD_ENDPOINTS} \
--cacert=${ETCD_CA_FILE} --cert=${ETCD_CERT_FILE} --key=${ETCD_KEY_FILE} \
--command-timeout=${ETCDCTL_TIMEOUT} \
snapshot save ${SNAPSHOT_FILE}
if [ $? -eq 0 ]; then
echo "$(date +%F\ %T) 备份成功:${SNAPSHOT_FILE}" >>/var/log/etcd-backup.log
else
echo "$(date +%F\ %T) 备份失败:${SNAPSHOT_FILE}" >>/var/log/etcd-backup.log
exit 1
fi
# 清理7天前的旧备份
find ${BACKUP_DIR} -name "etcd-snapshot-*.db" -mtime +7 -delete
作者:wanghongwei
版权声明:本作品遵循<CC BY-NC-ND 4.0>版权协议,商业转载请联系作者获得授权,非商业转载请附上原文出处链接及本声明。

浙公网安备 33010602011771号