Add script for database backup to S3
This commit is contained in:
parent
ab65e07a1d
commit
1f2cdea4b7
|
|
@ -0,0 +1,27 @@
|
|||
#!/bin/bash
|
||||
set -euxo pipefail
|
||||
|
||||
today=`date +"%Y-%m-%d"`
|
||||
echo $today
|
||||
dump_file=/tmp/myskillbox_backup.dump
|
||||
|
||||
# look up the list of backups from the heroku cli,
|
||||
# then look for the first line of the backup list and
|
||||
# look for today's date. script fails if nothing is found
|
||||
# (grep exits with an error code)
|
||||
heroku pg:backups --app $APP_NAME | grep '=== Backups' -A 3 | grep -q $today
|
||||
heroku pg:backups:download --app $APP_NAME --output=$dump_file
|
||||
# gzip it
|
||||
gzip $dump_file
|
||||
# encrypt the backup file
|
||||
gpg --yes --passphrase=$PG_BACKUP_KEY --batch -c $dump_file.gz
|
||||
rm $dump_file.gz
|
||||
|
||||
BACKUP_FILE_NAME="myskillbox-pg-backup-$(date '+%Y-%m-%d_%H.%M').gpg"
|
||||
|
||||
# temporarily set the access key, because we use a different one for the backup and
|
||||
# the default S3 bucket for Django
|
||||
AWS_ACCESS_KEY_ID=$BACKUP_AWS_ACCESS_KEY_ID
|
||||
AWS_SECRET_ACCESS_KEY=$BACKUP_AWS_SECRET_ACCESS_KEY
|
||||
aws s3 cp $dump_file.gz.gpg "s3://${BACKUP_S3_BUCKET_NAME}/${BACKUP_FILE_NAME}"
|
||||
rm $dump_file.gz.gpg
|
||||
Loading…
Reference in New Issue