From c058515dc145101d60ae9802d7504e39d6ad17fa Mon Sep 17 00:00:00 2001
From: Adar Nimrod <nimrod@shore.co.il>
Date: Fri, 4 Nov 2022 20:40:33 +0200
Subject: [PATCH] Server backup script.

Local automation for running offsite-backup (from the homelab repo) on
host01.
---
 .bash_completion.d/server-backup | 14 ++++++++++++++
 Documents/bin/server-backup      | 24 ++++++++++++++++++++++++
 2 files changed, 38 insertions(+)
 create mode 100644 .bash_completion.d/server-backup
 create mode 100755 Documents/bin/server-backup

diff --git a/.bash_completion.d/server-backup b/.bash_completion.d/server-backup
new file mode 100644
index 0000000..54b91cd
--- /dev/null
+++ b/.bash_completion.d/server-backup
@@ -0,0 +1,14 @@
+# vim: ft=bash
+
+_server_backup() {
+    local cur prev words cword opts
+    _init_completion || return
+    opts='-c'
+
+    if [[ $cur == -* ]]
+    then
+        COMPREPLY=($(compgen -W "$opts" -- "$cur"))
+    fi
+}
+
+complete -F _server_backup server-backup
diff --git a/Documents/bin/server-backup b/Documents/bin/server-backup
new file mode 100755
index 0000000..21e02f8
--- /dev/null
+++ b/Documents/bin/server-backup
@@ -0,0 +1,24 @@
+#!/bin/sh
+set -eu
+
+usage() {
+    echo "$(basename "$0") [-c]"
+}
+
+if [ "$#" -eq 0 ]
+then
+    ssh -t host01.shore.co.il -o \
+        "RemoteCommand tmux new-session -As backup sudo sh -c 'mount /dev/sdb1 /mnt && offsite-backup /mnt && umount /mnt'"
+elif [ "$1" = '-c' ]
+then
+    if ssh host01.shore.co.il tmux has-session -t backup 2>/dev/null
+    then
+        echo 'Backup is still running.'
+    else
+        echo 'Backup has finished.'
+        exit 1
+    fi
+else
+    usage
+    exit 1
+fi
-- 
GitLab