DBバックアップスクリプト(AWS版)
概要
mysqlサーバのデータを定期的にスナップショットでバックアップしていました。
シェルスクリプト
バックアップ
#!/bin/sh date=`date '+%Y%m%d_%s'` DESCRIPTION="DB_backup_$date" VOLID="vol-783ac837" /usr/local/bin/aws ec2 create-snapshot --volume-id $VOLID --description "$DESCRIPTION"
古いバックアップを消す
#!/bin/bash date=`date --date="7 day ago" +%Y%m%d` DESCRIPTION="DB_backup_$date" snap=`/usr/local/bin/aws ec2 describe-snapshots --filters Name=description,Values=$DESCRIPTION"*" --query Snapshots[*].SnapshotId --output text` VAR="$snap" ary=($VAR) for i in "${ary[@]}" do /usr/local/bin/aws ec2 delete-snapshot --snapshot-id $i done
おまけ
crontabで下記のように実行されてました。 35 * * * * /root/work/db_snapshot.sh >>/tmp/analog.log 2>>/tmp/analog-err.log 25 14 * * * /root/work/delete_snapshot.sh >>/tmp/analog.log 2>>/tmp/analog-err.log