Merge branch 'master' of github.com:m42e/docker-backup-gpg-s3

This commit is contained in:
2019-10-11 20:26:06 +02:00
2 changed files with 20 additions and 4 deletions

View File

@@ -4,6 +4,7 @@ MAINTAINER matthias@bilger.info
RUN apk add --update \ RUN apk add --update \
py-pip \ py-pip \
gpgme \ gpgme \
curl \
tar \ tar \
sed \ sed \
xz \ xz \

View File

@@ -16,25 +16,40 @@ else
BACKUP_FILENAME_MONTHLY=monthly_$BACKUP_BASENAME.xz BACKUP_FILENAME_MONTHLY=monthly_$BACKUP_BASENAME.xz
fi fi
healthchck_fail(){
if [ -n $HEALTHCHECK_URL ]; then
curl --retry 3 $HEALTHCHECK_URL/fail
exit 1
fi
}
healthchck_ok(){
if [ -n $HEALTHCHECK_URL ]; then
curl --retry 3 $HEALTHCHECK_URL
exit 1
fi
}
cd /backup cd /backup
echo "make archive" echo "make archive"
tar -c --checkpoint=.1000 ${TAR_PARAM} -f ~/$BACKUP_FILENAME ./* tar -c --checkpoint=.1000 ${TAR_PARAM} -f ~/$BACKUP_FILENAME ./* || healthchck_fail
cd / cd /
echo " done" echo " done"
RECIPIENT=$(echo "$GPG_RECIPIENT" | sed "s/,/ --recipient /") RECIPIENT=$(echo "$GPG_RECIPIENT" | sed "s/,/ --recipient /")
echo "encrypting" echo "encrypting"
gpg --trust-model always --enable-progress-filter --output ~/$BACKUP_FILENAME.gpg --encrypt --recipient $RECIPIENT ~/$BACKUP_FILENAME gpg --trust-model always --enable-progress-filter --output ~/$BACKUP_FILENAME.gpg --encrypt --recipient $RECIPIENT ~/$BACKUP_FILENAME || healthchck_fail
rm ~/$BACKUP_FILENAME rm ~/$BACKUP_FILENAME
echo "uploading" echo "uploading"
aws s3 cp ~/$BACKUP_FILENAME.gpg s3://$S3_BUCKET_NAME/$BACKUP_FILENAME.gpg --storage-class STANDARD_IA aws s3 cp ~/$BACKUP_FILENAME.gpg s3://$S3_BUCKET_NAME/$BACKUP_FILENAME.gpg --storage-class STANDARD_IA || healthchck_fail
rm ~/$BACKUP_FILENAME.gpg rm ~/$BACKUP_FILENAME.gpg
echo "done" echo "done"
# On first month day do # On first month day do
if [ "$month_day" -eq 1 ] ; then if [ "$month_day" -eq 1 ] ; then
echo "make monthly backup" echo "make monthly backup"
aws s3 s3://$S3_BUCKET_NAME/$BACKUP_FILENAME.gpg s3://$S3_BUCKET_NAME/$BACKUP_FILENAME_MONTHLY.gpg --storage-class DEEP_ARCHIVE aws s3 cp s3://$S3_BUCKET_NAME/$BACKUP_FILENAME.gpg s3://$S3_BUCKET_NAME/$BACKUP_FILENAME_MONTHLY.gpg --storage-class DEEP_ARCHIVE || (curl --retry 3 https://health.d1v3.de/ping/8183024f-0aa5-4e19-90a2-c1325a5408ae/fail && exit 1)
fi fi
healthchck_ok