我想每周天制作一次快照,并删除7天之前的快照,但同时,我想每月保存一个快照。
有人知道如何编辑这行代码吗?
我每天都在执行ebs-snapshot.sh时使用玉米,例如,我需要保存每月第一天制作的快照。
# How many days do you wish to retain backups for? Default: 7 days
retention_days="7"
retention_date_in_seconds=`date +%s --date "$retention_days days ago"`
[...]
# Purge all instance volume snapshots created by this script that are older than 7 days
for snapshot_id in $(cat /tmp/snapshot_info.txt)
do
echo "Checking $snapshot_id..."
snapshot_date=$(aws ec2 describe-snapshots --output=text --snapshot-ids $snapshot_id --query Snapshots[].StartTime | awk -F "T" '{printf "%s\n", $1}')
snapshot_date_in_seconds=`date "--date=$snapshot_date" +%s`
if (( $snapshot_date_in_seconds <= $retention_date_in_seconds )); then
echo "Deleting snapshot $snapshot_id ..." >> $logfile
aws ec2 delete-snapshot --snapshot-id $snapshot_id
else
echo "Not deleting snapshot $snapshot_id ..." >> $logfile
fi
done
答案 0 :(得分:1)
Automate the Amazon EBS Snapshot Lifecycle - Amazon Elastic Compute Cloud可能会更容易。
此功能可以使用已定义的保留策略定期自动创建快照。
只需对其进行配置即可创建每日快照,并将其保留7天。
关于每月快照,由于您显然希望永久保留它们,因此只需触发cron
作业即可每月创建一次快照。不需要保留逻辑,因此这只是一个简单的aws ec2 create-snapshot
命令。