Parcourir la source

concierge-backup: add ENCRYPTION support

guillaume il y a 7 ans
Parent
commit
b9e6ce6b7e
2 fichiers modifiés avec 26 ajouts et 2 suppressions
  1. 3 0
      doc/examples/backup.cfg.example
  2. 23 2
      src/concierge-backup

+ 3 - 0
doc/examples/backup.cfg.example

@@ -12,3 +12,6 @@ REMOTE_DIR=/var/backups
 
 # PostgreSQL backup options
 #PGSQL_EXCLUDE_DATNAME="['template_']"
+
+# Backup encryption
+ENCRYPTION_ENABLE=false

+ 23 - 2
src/concierge-backup

@@ -33,6 +33,27 @@ elif [ ${REMOTE_ENABLE} = true ]; then
 
 fi
 
+if [ -z "${ENCRYPTION_ENABLE}" ]; then
+
+  echo >&2 "ENCRYPTION_ENABLE is not set.  Aborting.";
+  exit 1;
+
+elif [ ${ENCRYPTION_ENABLE} = true ]; then
+
+  if [ -z "${ENCRYPTION_PASSPHRASE_PATH}" ]; then
+    echo >&2 "ENCRYPTION_PASSPHRASE_PATH is not set.  Aborting.";
+    exit 1;
+  fi
+
+  ENCRYPTION=--encryption=repokey
+  export BORG_PASSPHRASE=`cat ${ENCRYPTION_PASSPHRASE_PATH}`
+
+else
+
+  ENCRYPTION=--encryption=none
+
+fi
+
 if [ -z "${PGSQL_EXCLUDE_DATNAME}" ]; then
   PGSQL_EXCLUDE_DATNAME="['template_']"
 fi
@@ -80,7 +101,7 @@ fi
 
 if [ ! -d "${LOCAL_DEST}" ]; then
   # Initialize local borg repository
-  borg init --encryption=none "${LOCAL_DEST}"
+  borg init ${ENCRYPTION} "${LOCAL_DEST}"
 fi
 
 # Do local backup
@@ -101,7 +122,7 @@ if [ ${REMOTE_ENABLE} = true ]; then
     borg prune --keep-daily=7 --keep-weekly=4 --keep-monthly=3 ${REMOTE_USER}@${REMOTE_HOSTNAME}:${REMOTE_DEST}
   else
     echo >&2 "Remote repository is missing of corrupted. Try running: "
-    echo >&2 "borg init --encryption=none ${REMOTE_USER}@${REMOTE_HOSTNAME}:${REMOTE_DEST}"
+    echo >&2 "borg init ${ENCRYPTION} ${REMOTE_USER}@${REMOTE_HOSTNAME}:${REMOTE_DEST}"
   fi
 
 fi