Last active
October 10, 2019 12:16
-
-
Save cjdcordeiro/ca5bef5bd221b5b54d51eb6d34901cd6 to your computer and use it in GitHub Desktop.
S3 data backup for AWX instances, based on their default installation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
set -e | |
stack_name=$(docker stack ls --format '{{.Name}}') | |
mountpoint=$(docker volume inspect ${stack_name}_pgdocker --format '{{.Mountpoint}}') | |
tarball=$1_$(date +'%d%m%Y').tar.gz | |
tar -czvf ${tarball} -C ${mountpoint} pgdata | |
cat>~/.s3cfg <<EOF | |
[default] | |
host_base = $2 | |
host_bucket = %(bucket)s.$2 | |
access_key = $3 | |
secret_key = $4 | |
EOF | |
backups=$(s3cmd ls s3://$5/ | sort -k1,2) | |
if [ -z $backups ] | |
then | |
s3cmd mb s3://$5 | |
else | |
num_of_backups=$(echo "${backups}" | wc -l) | |
if [ $num_of_backups -gt 6 ] | |
then | |
oldest=$(echo "${backups}" | head -1 | awk '{print $NF}') | |
s3cmd del "${oldest}" | |
fi | |
fi | |
s3cmd put ${tarball} s3://$5/ | |
rm ${tarball} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment