備份
通常而言,etcd都是集群部署,其實並不需要額外備份,但實在是架不住豬隊友誤操作。
寫一個簡單的etcd備份腳本如下:
#!/bin/bash
set -e
exec >> /var/log/backup_etcd.log
Date=`date +%Y-%m-%d-%H-%M`
EtcdEndpoints="localhost:2379"
EtcdCmd="/usr/bin/etcdctl"
BackupDir="/home/www/server/backup/etcd"
BackupFile="snapshot.db.$Date"
echo "`date` backup etcd..."
export ETCDCTL_API=3
$EtcdCmd --endpoints $EtcdEndpoints snapshot save $BackupDir/$BackupFile
echo "`date` backup done!"
恢復
etcdctl snapshot restore snapshot.db.2019-05-21-10-02 -data-dir /home/www/server/etcd
參數說明:
- restore: 指定用於恢復的快照文件
- -data-dir:恢復到哪個目錄