On Compute Engine we can do Snapshots, which are basically backups. Could you try to figure out how we could create a script to do automated snapshots every day and keep lik
in my example, I have a maintenance window to create a snapshot for MySQL. it assumes that the service account has permission to execute gcloud snapshots commands. hope it helps:
#!/bin/bash
days_to_keep=7
disk=`curl -s "http://metadata.google.internal/computeMetadata/v1/instance/disks/1/device-name" -H "Metadata-Flavor: Google"`
zone=`curl -s "http://metadata.google.internal/computeMetadata/v1/instance/zone" -H "Metadata-Flavor: Google"`
project=`curl -s "http://metadata.google.internal/computeMetadata/v1/project/project-id" -H "Metadata-Flavor: Google"`
zone=`basename ${zone}`
storage_location=`echo ${zone}|sed 's/-[a-z]$//'`
systemctl stop mysqld
sleep 5
# flush file system buffers
sync
# create snapshot
gcloud -q compute disks snapshot ${disk} --project=${project} --snapshot-names=${disk}-$(date +%s) --zone=${zone} --storage-location=${storage_location}
systemctl start mysqld
delete_date=$(date -d "-${days_to_keep} days" "+%Y-%m-%d")
# get list of snapshots to delete
to_del=$(gcloud compute snapshots list --filter="name ~ ${disk}* AND creationTimestamp<$delete_date" --format "csv[no-heading](name)")
# delete bulk of old snapshots
if [[ ! -z ${to_del} ]]
then
gcloud compute snapshots delete -q ${to_del}
fi