Assorted shell and Python scripts
at main 39 lines 1.2 kB view raw
1#!/usr/bin/env bash 2# 3# systemd service - /etc/systemd/system/borgbackup-export-desktop.service 4# EnvironmentFile=/etc/borgbackup-export-desktop.env 5# 6# /etc/borgbackup-export-desktop.env 7# HC_PING_URL= 8# RESEND_API_KEY= 9# PATH="${PATH}:/home/linuxbrew/.linuxbrew/bin" 10 11set -euxo pipefail 12 13curl --retry 3 "${HC_PING_URL}/start" 14 15BORG_ARCHIVE=$(borg list /var/naspool/borgbackup/desktop | tail -n 1 | awk '{print $1}') 16ARCHIVE_BASENAME=$(echo "$BORG_ARCHIVE" | cut -d "T" -f 1) 17 18if ! borg export-tar \ 19 "/var/naspool/borgbackup/desktop::${BORG_ARCHIVE}" \ 20 "/home/jas/staging/${ARCHIVE_BASENAME}.tar"; then 21 curl --retry 3 "${HC_PING_URL}/fail" 22fi 23 24if ! gzip "/home/jas/staging/${ARCHIVE_BASENAME}.tar"; then 25 curl --retry 3 "${HC_PING_URL}/fail" 26fi 27 28if ! rsync -az --delete \ 29 "/home/jas/staging/${ARCHIVE_BASENAME}.tar.gz" \ 30 "jas@desktop.carp-wyvern.ts.net:/home/jas/proton_drive_staging"; then 31 curl --retry 3 "${HC_PING_URL}/fail" 32else 33 curl --retry 3 "$HC_PING_URL" 34 /home/jas/bin/resend_update.py "Borg archive ${ARCHIVE_BASENAME}.tar.gz is ready" "${ARCHIVE_BASENAME}.tar.gz is ready to be uploaded to Proton Drive." 35fi 36 37rm -f "/home/jas/staging/${ARCHIVE_BASENAME}.tar.gz" 38 39# vim: ts=4 sts=4 sw=4 et ai ft=bash