14Room

みんな泣きながらオトナになったんだ。

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