aboutsummaryrefslogtreecommitdiffstats
path: root/arch-system
diff options
context:
space:
mode:
authorTharre <tharre3@gmail.com>2018-08-07 03:01:38 +0200
committerTharre <tharre3@gmail.com>2018-08-07 04:31:00 +0200
commitf90a5be438306e5f92948199b2365c7d1f2f54f7 (patch)
treef8f4e8a4c328c5df427589777e6fc4cc4bdebf23 /arch-system
parent5223a9537c69621a5b77644c4d78c989439bb682 (diff)
downloadpkgbuilds-f90a5be438306e5f92948199b2365c7d1f2f54f7.tar.gz
pkgbuilds-f90a5be438306e5f92948199b2365c7d1f2f54f7.tar.xz
pkgbuilds-f90a5be438306e5f92948199b2365c7d1f2f54f7.zip
arch-system: borgbackup: better connectivity check
Instead of trying to execute borg, which would give us a false positive if borg itself isn't working on the remote, just connect to the server without executing a command. We check for 255 because `man 1 ssh` states the following: ssh exits with the exit status of the remote command or with 255 if an error occured.
Diffstat (limited to 'arch-system')
-rw-r--r--arch-system/PKGBUILD2
-rwxr-xr-xarch-system/borgbackup11
2 files changed, 7 insertions, 6 deletions
diff --git a/arch-system/PKGBUILD b/arch-system/PKGBUILD
index 7523ad5..399680e 100644
--- a/arch-system/PKGBUILD
+++ b/arch-system/PKGBUILD
@@ -31,7 +31,7 @@ sha256sums=('bb00c42f2802c12536c46700b948d41a43153d97a6986827b7c61203880e1ad1'
'99cd268de0e9b847d65f802e7bcbbf7318398a04db61523545d4002ebdfb4d9c'
'42050ba722df1cd606288e82054e131dac99bf10506f4c8d52eb9bfc0a078d89'
'e1bf3dc5978a7641f86975b7ee770a6914b30a8e4b7e3be2f1b07eaa7098591d'
- 'ba4e0a45cd428678ccb3b9981131333c2afa450107ca4a4bda475748ef915628'
+ '5ae98dd2c668b4ef1a5893a3f84716578b7dd986e7500ca3272135140dbb3801'
'5613c98d32e513a973e8a0e250ab0b267882a73615f507b6208d4a5f21487fe6')
package_base-system() {
diff --git a/arch-system/borgbackup b/arch-system/borgbackup
index 66d1a36..fdd410d 100755
--- a/arch-system/borgbackup
+++ b/arch-system/borgbackup
@@ -5,11 +5,11 @@ set -o errexit -o errtrace
BORG_HOST="borg@borg1.th73.ovh"
export BORG_REPO="$BORG_HOST:."
export BORG_PASSPHRASE="$(< ~/.borg_secret)"
-export BORG_RSH="ssh -o IdentitiesOnly=yes -o ConnectionAttempts=20 -i ~/.ssh/borg_key"
+export BORG_RSH="ssh -o IdentitiesOnly=yes -o ConnectionAttempts=20 \
+ -o ConnectTimeout=30 -i ~/.ssh/borg_key"
export LC_COLLATE=C
SNAPSHOT_TARGET="/.snapshots/home-$(date "+%Y-%m-%dT%H:%M:%S")"
-NETWORK_TIMEOUT=30
cleanup() {
cd /
@@ -66,12 +66,13 @@ if [ ! -d "$SNAPSHOT_TARGET" ]; then
sudo -n backup-sudo snapshot "$SNAPSHOT_TARGET"
fi
-if ! ssh -To BatchMode=yes -o ConnectTimeout=$NETWORK_TIMEOUT \
- -o IdentitiesOnly=yes -o ConnectionAttempts=20 -i ~/.ssh/borg_key \
- "$BORG_HOST" "borg --version" > /dev/null; then
+$BORG_RSH "$BORG_HOST" -f -N || rc=$?
+if [ ${rc-0} -eq 255 ]; then
notify_user "Backup: upload skipped"
echo "SSH server not reachable, skipping upload" >&2
exit 0
+elif [ ${rc-0} -ne 0 ]; then
+ handle_failure
fi
# break locks in case the previous run was interrupted