@@ -9,6 +9,7 @@ TEMPDIR=$(mktemp -d --tmpdir openwb_backup_XXXXXX)
99LOGDIR=" $OPENWBBASEDIR /data/log"
1010LOGFILE=" $LOGDIR /backup.log"
1111HOMEDIR=" /home/openwb"
12+ KEYFILE=" backup.key"
1213VAR_LIB=" /var/lib"
1314
1415# Mosquitto DB files to monitor
@@ -21,7 +22,7 @@ DB_FILES=(
2122DB_TIMEOUT=5
2223
2324useExtendedFilename=$1
24- FILENAMESUFFIX=" .tar.gz "
25+ FILENAMESUFFIX=" .openwb-backup "
2526
2627generate_filename () {
2728 # generate filename
@@ -30,7 +31,7 @@ generate_filename() {
3031 if (( useExtendedFilename == 1 )) ; then
3132 # only use characters supported in most OS!
3233 # for Win see https://learn.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-shares--directories--files--and-metadata
33- FILENAME=" openWB_backup_ $( date +" %Y-%m-%d_%H-%M-%S" ) "
34+ FILENAME=" $( date +" %Y-%m-%d_%H-%M-%S" ) _ $( < " $OPENWBBASEDIR " /web/version ) "
3435 else
3536 FILENAME=" backup"
3637 fi
@@ -245,6 +246,20 @@ create_archive() {
245246 gzip --verbose --suffix " $FILENAMESUFFIX " " $BACKUPFILE "
246247 }
247248
249+ encrypt_backup () {
250+ # encrypt backup file with gpg
251+ if [[ -f " $HOMEDIR /$KEYFILE " ]]; then
252+ echo " encrypting backup file"
253+ gpg --batch --yes --passphrase-file " $HOMEDIR /$KEYFILE " \
254+ --symmetric --cipher-algo AES256 " $BACKUPFILE$FILENAMESUFFIX "
255+ echo " removing unencrypted backup file"
256+ rm -v " $BACKUPFILE$FILENAMESUFFIX "
257+ FILENAMESUFFIX=" $FILENAMESUFFIX .gpg"
258+ else
259+ echo " No key found at '$HOMEDIR /$KEYFILE ', skipping encryption!"
260+ fi
261+ }
262+
248263 fix_permissions () {
249264 echo " setting permissions of new backup file"
250265 sudo chown openwb:www-data " $BACKUPFILE$FILENAMESUFFIX "
@@ -254,6 +269,7 @@ create_archive() {
254269 create_backup
255270 calculate_checksums
256271 cleanup_and_compress
272+ encrypt_backup
257273 fix_permissions
258274}
259275
0 commit comments