我有Google Compute Engine实例,我想进行自动快照/图像备份。 它应该像计划作业一样,每隔5个小时为我的实例创建一个快照/图像。
我读到可以使用Cron工作,但我无法理解如何操作。
您能帮我理解如何进行自动快照/图像处理吗?
提前致谢。
答案 0 :(得分:1)
您可以使用gcloud命令创建.sh脚本以生成快照。这是我们正在使用的脚本:
# Settings
GCLOUD_PROJECT="my-project"
SERVICE_ACCOUNT_JSON="location to service account json"
DISK_NAME="my-disk"
GCE_ZONE="europe-west1-d"
DATETIME=`date "+%Y-%m-%d-%H-%M-%S"`
# authenticate first
export CLOUDSDK_PYTHON_SITEPACKAGES=1
gcloud auth activate-service-account --key-file $SERVICE_ACCOUNT_JSON --project $GCLOUD_PROJECT
# sync => empty filesystem buffers
sync
# make the actual snapshot
gcloud --project $GCLOUD_PROJECT compute disks snapshot $DISK_NAME --zone $GCE_ZONE --snapshot-names $DISK_NAME-$DATETIME
每次运行时都会创建一个新的增量快照(例如,创建一个cron来在晚上运行它)。您需要做的下一件事是确定要保留的快照数量。我们保留了5个快照并创建了下一个脚本来删除比5个最新快照更早的快照。我们在第一个脚本之后30分钟运行此脚本,以确保快照的创建完成。
# Settings
GCLOUD_PROJECT="my-project"
SERVICE_ACCOUNT_JSON="location to service account json"
DISK_NAME="my-disk"
GCE_ZONE="europe-west1-d"
# authenticate first
export CLOUDSDK_PYTHON_SITEPACKAGES=1
gcloud auth activate-service-account --key-file $SERVICE_ACCOUNT_JSON --project $GCLOUD_PROJECT
# list snapshots
snapshot_list=($(gcloud --project $GCLOUD_PROJECT compute snapshots list --sort-by NAME --regexp "$DISK_NAME-.*" | tail -n +2 | awk '{print $1}'))
keep_index=$(expr ${#snapshot_list[*]} - 5)
for i in $(seq 0 $keep_index);
do
gcloud --project $GCLOUD_PROJECT compute snapshots delete ${snapshot_list[i]} -q
done
答案 1 :(得分:0)
Google现在推出了Snapshot Scheduler
。您可以在快照部分->创建快照计划中找到它。
一旦有了日程表,就可以创建一个新磁盘并选择日程表,或者编辑现有的磁盘并分配日程表。