· 6 years ago · Oct 29, 2019, 12:32 AM
1#!/usr/bin/env bash
2
3set -e
4
5stack_name=$(docker stack ls --format '{{.Name}}')
6
7mountpoint=$(docker volume inspect ${stack_name}_pgdocker --format '{{.Mountpoint}}')
8
9tarball=$1_$(date +'%d%m%Y').tar.gz
10
11tar -czvf ${tarball} -C ${mountpoint} pgdata
12
13cat>~/.s3cfg <<EOF
14[default]
15host_base = $2
16host_bucket = %(bucket)s.$2
17access_key = $3
18secret_key = $4
19EOF
20
21backups=$(s3cmd ls s3://$5/ | sort -k1,2)
22if [ -z $backups ]
23then
24 s3cmd mb s3://$5
25else
26 num_of_backups=$(echo "${backups}" | wc -l)
27 if [ $num_of_backups -gt 6 ]
28 then
29 oldest=$(echo "${backups}" | head -1 | awk '{print $NF}')
30 s3cmd del "${oldest}"
31 fi
32fi
33
34s3cmd put ${tarball} s3://$5/
35rm ${tarball}