etcd 备份:
etcd is running.
{"level":"info","ts":1698069449.0897536,"caller":"snapshot/v3_snapshot.go:119","msg":"created temporary db file","path":"/root/etcd-backup/etcd_backup_2023年10月23日21时57分.db.part"}
{"level":"info","ts":"2023-10-23T21:57:29.097+0800","caller":"clientv3/maintenance.go:200","msg":"opened snapshot stream; downloading"}
{"level":"info","ts":1698069449.0973763,"caller":"snapshot/v3_snapshot.go:127","msg":"fetching snapshot","endpoint":"https://192.168.1.208:2379"}
{"level":"info","ts":"2023-10-23T21:57:29.380+0800","caller":"clientv3/maintenance.go:208","msg":"completed snapshot read; closing"}
{"level":"info","ts":1698069449.5135188,"caller":"snapshot/v3_snapshot.go:142","msg":"fetched snapshot","endpoint":"https://192.168.1.208:2379","size":"26 MB","took":0.423625173}
{"level":"info","ts":1698069449.5136635,"caller":"snapshot/v3_snapshot.go:152","msg":"saved","path":"/root/etcd-backup/etcd_backup_2023年10月23日21时57分.db"}
Snapshot saved at /root/etcd-backup/etcd_backup_2023年10月23日21时57分.db
Backup successful: /root/etcd-backup/etcd_backup_2023年10月23日21时57分.db
etcd-backup.sh
使用方法: 先粘贴到 notpad++,然后再复制粘贴到 .sh 文件中。 不然会有编码问题。
#!/bin/bash
SERVICE_NAME="etcd"
# 检查服务是否在运行
if systemctl is-active --quiet $SERVICE_NAME; then
echo "$SERVICE_NAME is running."
else
echo "$SERVICE_NAME is not running."
exit 1
fi
# 获取当前主机的 IP 地址
CURRENT_IP=$(hostname -I | cut -d' ' -f1)
# 设置备份存储路径
BACKUP_DIR="/root/etcd-backup"
# 设置 etcd 证书路径
CACERT="/etc/ssl/etcd/ssl/ca.pem"
CERT="/etc/ssl/etcd/ssl/admin-master1.pem"
KEY="/etc/ssl/etcd/ssl/admin-master1-key.pem"
# 检查备份目录是否存在,如果不存在则创建
if [ ! -d "$BACKUP_DIR" ]; then
mkdir -p "$BACKUP_DIR"
fi
# 获取当前时间的年、月、日、小时和分钟
YEAR=$(date +"%Y")
MONTH=$(date +"%m")
DAY=$(date +"%d")
HOUR=$(date +"%H")
MINUTE=$(date +"%M")
# 构建格式化的时间戳
TIMESTAMP="${YEAR}年${MONTH}月${DAY}日${HOUR}时${MINUTE}分"
# 构建备份文件名
BACKUP_FILE="$BACKUP_DIR/etcd_backup_$TIMESTAMP.db"
# 执行 etcd 备份命令
ETCDCTL_API=3 /usr/local/bin/etcdctl --endpoints="https://$CURRENT_IP:2379" snapshot save "$BACKUP_FILE" \
--cacert="$CACERT" \
--cert="$CERT" \
--key="$KEY"
if [ $? -eq 0 ]; then
echo "Backup successful: $BACKUP_FILE"
else
echo "Backup failed"
fi
欢迎来撩 : 汇总all