Skip to content

Commit 15d604d

Browse files
authored
Merge pull request #2798 from openWB/feature-enhanced-backup
Feature enhanced backup
2 parents a34279c + 08da9ce commit 15d604d

1 file changed

Lines changed: 18 additions & 2 deletions

File tree

runs/backup.sh

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ TEMPDIR=$(mktemp -d --tmpdir openwb_backup_XXXXXX)
99
LOGDIR="$OPENWBBASEDIR/data/log"
1010
LOGFILE="$LOGDIR/backup.log"
1111
HOMEDIR="/home/openwb"
12+
KEYFILE="backup.key"
1213
VAR_LIB="/var/lib"
1314

1415
# Mosquitto DB files to monitor
@@ -21,7 +22,7 @@ DB_FILES=(
2122
DB_TIMEOUT=5
2223

2324
useExtendedFilename=$1
24-
FILENAMESUFFIX=".tar.gz"
25+
FILENAMESUFFIX=".openwb-backup"
2526

2627
generate_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

Comments
 (0)