Skip to content

Instantly share code, notes, and snippets.

@cjdcordeiro
Last active October 10, 2019 12:16
Show Gist options
  • Save cjdcordeiro/ca5bef5bd221b5b54d51eb6d34901cd6 to your computer and use it in GitHub Desktop.
Save cjdcordeiro/ca5bef5bd221b5b54d51eb6d34901cd6 to your computer and use it in GitHub Desktop.
S3 data backup for AWX instances, based on their default installation
#!/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