]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - modules/private/system/quatresaisons/xdej-backup.sh
Add flake skeletons
[perso/Immae/Config/Nix.git] / modules / private / system / quatresaisons / xdej-backup.sh
diff --git a/modules/private/system/quatresaisons/xdej-backup.sh b/modules/private/system/quatresaisons/xdej-backup.sh
new file mode 100755 (executable)
index 0000000..cebc2f5
--- /dev/null
@@ -0,0 +1,27 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+BASE='/(/immae/'
+BAK_BASE="$BASE/older"
+CURRENT="$BASE/backup"
+NBR=7
+
+ssh xdej-backup <<EOF
+current_size=\$(du -s "$CURRENT" | head -n1 | cut -f1)
+
+if [ "\$current_size" -le "104857600" ]; then
+       echo "incomplete backup directory, exiting"
+       exit 1
+fi
+
+mkdir -p '$BAK_BASE'
+echo rm -rf '${BAK_BASE}/j$NBR'
+for j in \$(seq -w $(($NBR-1)) -1 0); do
+  [ ! -d "${BAK_BASE}/j\$j" ] && continue
+  mv "${BAK_BASE}/j\$j" "${BAK_BASE}/j\$((\$j+1))"
+done
+mkdir -p '$BAK_BASE/j0'
+EOF
+
+rsync -av --backup-dir='/\(/immae/older/j0' --delete /home/ xdej-backup:'/\(/immae/backup'