Assorted shell and Python scripts
1#!/usr/bin/env bash
2
3set -euxo pipefail
4
5if [ ! -f "${HOME}/.env_common" ]; then
6 echo "ERROR: .env_common not found"
7 exit 1
8else
9 source "${HOME}/.env_common"
10fi
11
12curl --retry 3 "${HC_PING_URL}/start"
13
14BORG_ARCHIVE=$(borg list ssh://root@hyperreal.carp-wyvern.ts.net/srv/borgbackup/hyperreal | tail -n 1 | awk '{print $1}')
15ARCHIVE_BASENAME=$(echo "$BORG_ARCHIVE" | cut -d "T" -f 1)
16TS_HOST=$(tailscale status --json | jq ".Self.HostName" | tr -d '"')
17
18if [ "$TS_HOST" = "nas" ]; then
19 if ! borg export-tar \
20 "ssh://root@hyperreal.carp-wyvern.ts.net/srv/borgbackup/hyperreal::${BORG_ARCHIVE}" \
21 "/naspool/hyperreal_backup/${ARCHIVE_BASENAME}.tar"; then
22 curl --retry 3 "${HC_PING_URL}/fail"
23 fi
24
25 find /naspool/hyperreal_backup \
26 -maxdepth 1 \
27 -type f \
28 -mtime +7 \
29 -exec rm -fv {} \; ||
30 curl --retry 3 "${HC_PING_URL}/fail"
31fi
32
33if [ "$TS_HOST" = "aux-remote" ]; then
34 if ! borg export-tar \
35 "ssh://root@hyperreal.carp-wyvern.ts.net/srv/borgbackup/hyperreal::${BORG_ARCHIVE}" \
36 "/bpool/hyperreal_backup/${ARCHIVE_BASENAME}.tar"; then
37 curl --retry 3 "${HC_PING_URL}/fail"
38 fi
39
40 find /bpool/hyperreal_backup \
41 -maxdepth 1 \
42 -type f \
43 -mtime +7 \
44 -exec rm -fv {} \; ||
45 curl --retry 3 "${HC_PING_URL}/fail"
46fi
47
48curl --retry 3 "$HC_PING_URL"
49
50# vim: ts=4 sts=4 sw=4 et ai ft=bash