diff --git a/backup.sh b/backup.sh index 5dafef5..d2aa248 100644 --- a/backup.sh +++ b/backup.sh @@ -18,17 +18,24 @@ fi healthchck_fail(){ if [ -n $HEALTHCHECK_URL ]; then - curl --retry 3 $HEALTHCHECK_URL/fail + curl -X POST --data $1 --retry 3 $HEALTHCHECK_URL/fail --silent --output /dev/null exit 1 fi } +healthchck_start(){ + if [ -n $HEALTHCHECK_URL ]; then + curl -X POST --data $1 --retry 3 $HEALTHCHECK_URL/start --silent --output /dev/null + fi +} + healthchck_ok(){ if [ -n $HEALTHCHECK_URL ]; then - curl --retry 3 $HEALTHCHECK_URL + curl -X POST --data $1 --retry 3 $HEALTHCHECK_URL --silent --output /dev/null fi } +healthchck_start "Starting Backup" cd /backup echo "make archive" FROMPATH='./*' @@ -36,7 +43,7 @@ FROMSIZE=`du -sk ${FROMPATH} | cut -f 1`; CHECKPOINT=`echo ${FROMSIZE}/50 | bc`; echo "Estimated: [==================================================]"; echo -n "Progess: ["; -tar -c --record-size=1K --checkpoint="${CHECKPOINT}" --checkpoint-action="ttyout=>" -f - "${FROMPATH}" | bzip2 > "${$BACKUP_FILENAME}"; +(tar -c --record-size=1K --checkpoint="${CHECKPOINT}" --checkpoint-action="ttyout=>" -f - "${FROMPATH}" | bzip2 > "${$BACKUP_FILENAME}") || healthchck_fail "TAR Failed" echo "]" cd / echo " done" @@ -44,17 +51,17 @@ echo " done" RECIPIENT=$(echo "$GPG_RECIPIENT" | sed "s/,/ --recipient /") echo "encrypting" -gpg --trust-model always --enable-progress-filter --output ~/$BACKUP_FILENAME.gpg --encrypt --recipient $RECIPIENT ~/$BACKUP_FILENAME || healthchck_fail +gpg --trust-model always --enable-progress-filter --output ~/$BACKUP_FILENAME.gpg --encrypt --recipient $RECIPIENT ~/$BACKUP_FILENAME || healthchck_fail "Encryption Failed" rm ~/$BACKUP_FILENAME echo "uploading" -aws s3 cp ~/$BACKUP_FILENAME.gpg s3://$S3_BUCKET_NAME/$BACKUP_FILENAME.gpg --storage-class STANDARD_IA || healthchck_fail +aws s3 cp ~/$BACKUP_FILENAME.gpg s3://$S3_BUCKET_NAME/$BACKUP_FILENAME.gpg --storage-class STANDARD_IA || healthchck_fail "Upload Failed" rm ~/$BACKUP_FILENAME.gpg echo "done" # On first month day do if [ "$month_day" -eq 1 ] ; then echo "make monthly backup" - 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) + aws s3 cp s3://$S3_BUCKET_NAME/$BACKUP_FILENAME.gpg s3://$S3_BUCKET_NAME/$BACKUP_FILENAME_MONTHLY.gpg --storage-class DEEP_ARCHIVE || healthchck_fail "failed to create monthly backup" fi -healthchck_ok +healthchck_ok "Success"