Bläddra i källkod

Moving to rsyncrypto

Bob Mottram 10 år sedan
förälder
incheckning
d99a4dccb2
1 ändrade filer med 51 tillägg och 44 borttagningar
  1. 51
    44
      install-freedombone.sh

+ 51
- 44
install-freedombone.sh Visa fil

229
 # default MariaDB password
229
 # default MariaDB password
230
 MARIADB_PASSWORD=
230
 MARIADB_PASSWORD=
231
 
231
 
232
-# The obnam forgetting period
233
-BACKUP_PERIOD_DAYS=30
234
-
235
-# Whether to encrypt backups to the USB drive
236
-ENCRYPT_BACKUPS="yes"
237
-
238
 #list of encryption protocols
232
 #list of encryption protocols
239
 SSL_PROTOCOLS="TLSv1 TLSv1.1 TLSv1.2"
233
 SSL_PROTOCOLS="TLSv1 TLSv1.1 TLSv1.2"
240
 
234
 
3169
   if grep -Fxq "create_backup_script" $COMPLETION_FILE; then
3163
   if grep -Fxq "create_backup_script" $COMPLETION_FILE; then
3170
       return
3164
       return
3171
   fi
3165
   fi
3172
-  apt-get -y --force-yes install obnam bcrypt
3173
 
3166
 
3174
-  if [ ! -f /usr/bin/obnam ]; then
3175
-      echo "ERROR: obnam may not have installed correctly. $CHECK_MESSAGE"
3167
+  apt-get -y --force-yes install rsyncrypto
3168
+
3169
+  if [ ! -f /usr/bin/rsyncrypto ]; then
3170
+      echo "ERROR: rsyncrypto may not have installed correctly. $CHECK_MESSAGE"
3176
       exit 46
3171
       exit 46
3177
   fi
3172
   fi
3178
 
3173
 
3174
+  RSYNC_KEYFILE=$(openssl rand -base64 32)
3175
+
3179
   echo '#!/bin/bash' > /usr/bin/$BACKUP_SCRIPT_NAME
3176
   echo '#!/bin/bash' > /usr/bin/$BACKUP_SCRIPT_NAME
3180
-  echo "obnam forget --keep=${BACKUP_PERIOD_DAYS}d" >> /usr/bin/$BACKUP_SCRIPT_NAME
3177
+  echo '' >> /usr/bin/$BACKUP_SCRIPT_NAME
3178
+  echo "if [ ! -f /etc/ssl/private/rsync.key ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3179
+  echo '  echo "Generating an rsync encryption certificate"' >> /usr/bin/$BACKUP_SCRIPT_NAME
3180
+  echo "  openssl req -nodes -newkey rsa:2048 -x509 -sha256 -keyout /etc/ssl/private/rsync.key -out /etc/ssl/certs/rsync.crt" >> /usr/bin/$BACKUP_SCRIPT_NAME
3181
+  echo '  chmod 400 /etc/ssl/private/rsync.key' >> /usr/bin/$BACKUP_SCRIPT_NAME
3182
+  echo '  chmod 640 /etc/ssl/certs/rsync.crt' >> /usr/bin/$BACKUP_SCRIPT_NAME
3183
+  echo "fi" >> /usr/bin/$BACKUP_SCRIPT_NAME
3184
+  echo '' >> /usr/bin/$BACKUP_SCRIPT_NAME
3185
+  echo 'if [ ! -d ~/rr ]; then' >> /usr/bin/$BACKUP_SCRIPT_NAME
3186
+  echo '  mkdir ~/rr' >> /usr/bin/$BACKUP_SCRIPT_NAME
3187
+  echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3188
+  echo 'if [ ! -f ~/rr/keys ]; then' >> /usr/bin/$BACKUP_SCRIPT_NAME
3189
+  echo "  echo '$RSYNC_KEYFILE' > ~/rr/keys" >> /usr/bin/$BACKUP_SCRIPT_NAME
3190
+  echo '  chmod 400 ~/rr/keys' >> /usr/bin/$BACKUP_SCRIPT_NAME
3191
+  echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3192
+  echo '' >> /usr/bin/$BACKUP_SCRIPT_NAME
3181
   echo "if [ -b $USB_DRIVE ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3193
   echo "if [ -b $USB_DRIVE ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3182
   echo "  if [ ! -d $USB_MOUNT ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3194
   echo "  if [ ! -d $USB_MOUNT ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3183
   echo "    mkdir $USB_MOUNT" >> /usr/bin/$BACKUP_SCRIPT_NAME
3195
   echo "    mkdir $USB_MOUNT" >> /usr/bin/$BACKUP_SCRIPT_NAME
3191
       echo "  if [ ! -d $USB_MOUNT/backup/Maildir ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3203
       echo "  if [ ! -d $USB_MOUNT/backup/Maildir ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3192
       echo "    mkdir $USB_MOUNT/backup/Maildir" >> /usr/bin/$BACKUP_SCRIPT_NAME
3204
       echo "    mkdir $USB_MOUNT/backup/Maildir" >> /usr/bin/$BACKUP_SCRIPT_NAME
3193
       echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3205
       echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3194
-      echo "  obnam backup -r $USB_MOUNT/backup/Maildir /home/$MY_USERNAME/Maildir" >> /usr/bin/$BACKUP_SCRIPT_NAME
3206
+      echo "  rsyncrypto --ne-nesting=2 --trim=3 -n ~/rr/map -cvr /home/$MY_USERNAME/Maildir $USB_MOUNT/backup/Maildir ~/rr/keys /etc/ssl/certs/rsync.crt" >> /usr/bin/$BACKUP_SCRIPT_NAME
3195
       echo "  if [ ! -d $USB_MOUNT/backup/gpg ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3207
       echo "  if [ ! -d $USB_MOUNT/backup/gpg ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3196
       echo "    mkdir $USB_MOUNT/backup/gpg" >> /usr/bin/$BACKUP_SCRIPT_NAME
3208
       echo "    mkdir $USB_MOUNT/backup/gpg" >> /usr/bin/$BACKUP_SCRIPT_NAME
3197
       echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3209
       echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3198
-      echo "  obnam backup -r $USB_MOUNT/backup/gpg /home/$MY_USERNAME/.gnupg" >> /usr/bin/$BACKUP_SCRIPT_NAME
3210
+      echo "  rsyncrypto --ne-nesting=2 --trim=3 -n ~/rr/map -cvr /home/$MY_USERNAME/.gnupg $USB_MOUNT/backup/gpg ~/rr/keys /etc/ssl/certs/rsync.crt" >> /usr/bin/$BACKUP_SCRIPT_NAME
3199
       echo "  cp -f /home/$MY_USERNAME/.muttrc $USB_MOUNT/backup/gpg" >> /usr/bin/$BACKUP_SCRIPT_NAME
3211
       echo "  cp -f /home/$MY_USERNAME/.muttrc $USB_MOUNT/backup/gpg" >> /usr/bin/$BACKUP_SCRIPT_NAME
3200
       echo "  cp -f /home/$MY_USERNAME/.procmailrc $USB_MOUNT/backup/gpg" >> /usr/bin/$BACKUP_SCRIPT_NAME
3212
       echo "  cp -f /home/$MY_USERNAME/.procmailrc $USB_MOUNT/backup/gpg" >> /usr/bin/$BACKUP_SCRIPT_NAME
3201
   fi
3213
   fi
3204
   echo "    if [ ! -d $USB_MOUNT/backup/personal ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3216
   echo "    if [ ! -d $USB_MOUNT/backup/personal ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3205
   echo "      mkdir $USB_MOUNT/backup/personal" >> /usr/bin/$BACKUP_SCRIPT_NAME
3217
   echo "      mkdir $USB_MOUNT/backup/personal" >> /usr/bin/$BACKUP_SCRIPT_NAME
3206
   echo '    fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3218
   echo '    fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3207
-  echo "    obnam backup -r $USB_MOUNT/backup/personal /home/$MY_USERNAME/personal" >> /usr/bin/$BACKUP_SCRIPT_NAME
3219
+  echo "    rsyncrypto --ne-nesting=2 --trim=3 -n ~/rr/map -cvr /home/$MY_USERNAME/personal $USB_MOUNT/backup/personal ~/rr/keys /etc/ssl/certs/rsync.crt" >> /usr/bin/$BACKUP_SCRIPT_NAME
3208
   echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3220
   echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3209
   # SSL certificates
3221
   # SSL certificates
3210
   echo "  if [ ! -d $USB_MOUNT/backup/ssl ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3222
   echo "  if [ ! -d $USB_MOUNT/backup/ssl ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3211
   echo "    mkdir $USB_MOUNT/backup/ssl" >> /usr/bin/$BACKUP_SCRIPT_NAME
3223
   echo "    mkdir $USB_MOUNT/backup/ssl" >> /usr/bin/$BACKUP_SCRIPT_NAME
3212
   echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3224
   echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3213
-  echo "  obnam backup -r $USB_MOUNT/backup/ssl /etc/ssl" >> /usr/bin/$BACKUP_SCRIPT_NAME
3225
+  echo "  rsyncrypto --ne-nesting=2 --trim=3 -n ~/rr/map -cvr /etc/ssl $USB_MOUNT/backup/ssl ~/rr/keys /etc/ssl/certs/rsync.crt" >> /usr/bin/$BACKUP_SCRIPT_NAME
3214
   # dynamic dns
3226
   # dynamic dns
3215
   echo "  if [ -f /usr/bin/dynamicdns ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3227
   echo "  if [ -f /usr/bin/dynamicdns ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3216
   echo "    cp -f /usr/bin/dynamicdns $USB_MOUNT/backup/dynamicdns" >> /usr/bin/$BACKUP_SCRIPT_NAME
3228
   echo "    cp -f /usr/bin/dynamicdns $USB_MOUNT/backup/dynamicdns" >> /usr/bin/$BACKUP_SCRIPT_NAME
3220
   echo "    if [ ! -d $USB_MOUNT/backup/webserver ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3232
   echo "    if [ ! -d $USB_MOUNT/backup/webserver ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3221
   echo "        mkdir $USB_MOUNT/backup/webserver" >> /usr/bin/$BACKUP_SCRIPT_NAME
3233
   echo "        mkdir $USB_MOUNT/backup/webserver" >> /usr/bin/$BACKUP_SCRIPT_NAME
3222
   echo '    fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3234
   echo '    fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3223
-  echo "    obnam backup -r $USB_MOUNT/backup/webserver /etc/nginx/sites-available" >> /usr/bin/$BACKUP_SCRIPT_NAME
3235
+  echo "    rsyncrypto --ne-nesting=2 --trim=3 -n ~/rr/map -cvr /etc/nginx/sites-available $USB_MOUNT/backup/webserver ~/rr/keys /etc/ssl/certs/rsync.crt" >> /usr/bin/$BACKUP_SCRIPT_NAME
3224
   echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3236
   echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3225
   # owncloud
3237
   # owncloud
3226
   if ! [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" ]]; then
3238
   if ! [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" ]]; then
3228
           echo "  if [ ! -d $USB_MOUNT/backup/owncloud ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3240
           echo "  if [ ! -d $USB_MOUNT/backup/owncloud ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3229
           echo "    mkdir $USB_MOUNT/backup/owncloud" >> /usr/bin/$BACKUP_SCRIPT_NAME
3241
           echo "    mkdir $USB_MOUNT/backup/owncloud" >> /usr/bin/$BACKUP_SCRIPT_NAME
3230
           echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3242
           echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3231
-          echo "  obnam backup -r $USB_MOUNT/backup/owncloud /var/www/$OWNCLOUD_DOMAIN_NAME" >> /usr/bin/$BACKUP_SCRIPT_NAME
3243
+		  echo "  rsyncrypto --ne-nesting=2 --trim=3 -n ~/rr/map -cvr /var/www/$OWNCLOUD_DOMAIN_NAME $USB_MOUNT/backup/owncloud ~/rr/keys /etc/ssl/certs/rsync.crt" >> /usr/bin/$BACKUP_SCRIPT_NAME
3232
       fi
3244
       fi
3233
   fi
3245
   fi
3234
   # prosody
3246
   # prosody
3236
   echo "    if [ ! -d $USB_MOUNT/backup/prosody ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3248
   echo "    if [ ! -d $USB_MOUNT/backup/prosody ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3237
   echo "      mkdir $USB_MOUNT/backup/prosody" >> /usr/bin/$BACKUP_SCRIPT_NAME
3249
   echo "      mkdir $USB_MOUNT/backup/prosody" >> /usr/bin/$BACKUP_SCRIPT_NAME
3238
   echo '    fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3250
   echo '    fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3239
-  echo "    obnam backup -r $USB_MOUNT/backup/prosody /var/lib/prosody" >> /usr/bin/$BACKUP_SCRIPT_NAME
3251
+  echo "    rsyncrypto --ne-nesting=2 --trim=3 -n ~/rr/map -cvr /var/lib/prosody $USB_MOUNT/backup/prosody ~/rr/keys /etc/ssl/certs/rsync.crt" >> /usr/bin/$BACKUP_SCRIPT_NAME
3240
   echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3252
   echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3241
   # wiki / blog
3253
   # wiki / blog
3242
   if ! [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" ]]; then
3254
   if ! [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" ]]; then
3244
           echo "  if [ ! -d $USB_MOUNT/backup/wiki-blog ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3256
           echo "  if [ ! -d $USB_MOUNT/backup/wiki-blog ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3245
           echo "    mkdir $USB_MOUNT/backup/wiki-blog" >> /usr/bin/$BACKUP_SCRIPT_NAME
3257
           echo "    mkdir $USB_MOUNT/backup/wiki-blog" >> /usr/bin/$BACKUP_SCRIPT_NAME
3246
           echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3258
           echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3247
-          echo "  obnam backup -r $USB_MOUNT/backup/wiki-blog /var/www/$WIKI_DOMAIN_NAME" >> /usr/bin/$BACKUP_SCRIPT_NAME
3259
+		  echo "  rsyncrypto --ne-nesting=2 --trim=3 -n ~/rr/map -cvr /var/www/$WIKI_DOMAIN_NAME $USB_MOUNT/backup/wiki-blog ~/rr/keys /etc/ssl/certs/rsync.crt" >> /usr/bin/$BACKUP_SCRIPT_NAME
3248
       fi
3260
       fi
3249
   fi
3261
   fi
3250
   # microblog
3262
   # microblog
3270
       echo "  if [ ! -d $USB_MOUNT/backup/dlna ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3282
       echo "  if [ ! -d $USB_MOUNT/backup/dlna ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3271
       echo "    mkdir $USB_MOUNT/backup/dlna" >> /usr/bin/$BACKUP_SCRIPT_NAME
3283
       echo "    mkdir $USB_MOUNT/backup/dlna" >> /usr/bin/$BACKUP_SCRIPT_NAME
3272
       echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3284
       echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3273
-      echo "  obnam backup -r $USB_MOUNT/backup/dlna /var/cache/minidlna" >> /usr/bin/$BACKUP_SCRIPT_NAME
3285
+	  echo "  rsyncrypto --ne-nesting=2 --trim=3 -n ~/rr/map -cvr /var/cache/minidlna $USB_MOUNT/backup/dlna ~/rr/keys /etc/ssl/certs/rsync.crt" >> /usr/bin/$BACKUP_SCRIPT_NAME
3274
   fi
3286
   fi
3275
   echo 'else' >> /usr/bin/$BACKUP_SCRIPT_NAME
3287
   echo 'else' >> /usr/bin/$BACKUP_SCRIPT_NAME
3276
   echo '  echo "Please insert a USB drive to create the backup."' >> /usr/bin/$BACKUP_SCRIPT_NAME
3288
   echo '  echo "Please insert a USB drive to create the backup."' >> /usr/bin/$BACKUP_SCRIPT_NAME
3277
   echo '  exit 1' >> /usr/bin/$BACKUP_SCRIPT_NAME
3289
   echo '  exit 1' >> /usr/bin/$BACKUP_SCRIPT_NAME
3278
   echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3290
   echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3279
   echo 'echo "Backup completed"' >> /usr/bin/$BACKUP_SCRIPT_NAME
3291
   echo 'echo "Backup completed"' >> /usr/bin/$BACKUP_SCRIPT_NAME
3280
-  if [[ $ENCRYPT_BACKUPS == "yes" ]]; then
3281
-      echo 'echo "Archiving backup data"' >> /usr/bin/$BACKUP_SCRIPT_NAME
3282
-      echo "cd $USB_MOUNT" >> /usr/bin/$BACKUP_SCRIPT_NAME
3283
-      echo "tar -czvf $USB_MOUNT/backup.tar.gz $USB_MOUNT/backup" >> /usr/bin/$BACKUP_SCRIPT_NAME
3284
-      echo 'echo "Encrypting backup data"' >> /usr/bin/$BACKUP_SCRIPT_NAME
3285
-      echo "bcrypt -c $USB_MOUNT/backup.tar.gz" >> /usr/bin/$BACKUP_SCRIPT_NAME
3286
-  fi
3287
   echo 'exit 0' >> /usr/bin/$BACKUP_SCRIPT_NAME
3292
   echo 'exit 0' >> /usr/bin/$BACKUP_SCRIPT_NAME
3288
   chmod 600 /usr/bin/$BACKUP_SCRIPT_NAME
3293
   chmod 600 /usr/bin/$BACKUP_SCRIPT_NAME
3289
   chmod +x /usr/bin/$BACKUP_SCRIPT_NAME
3294
   chmod +x /usr/bin/$BACKUP_SCRIPT_NAME
3295
   if grep -Fxq "create_restore_script" $COMPLETION_FILE; then
3300
   if grep -Fxq "create_restore_script" $COMPLETION_FILE; then
3296
       return
3301
       return
3297
   fi
3302
   fi
3298
-  apt-get -y --force-yes install obnam bcrypt
3303
+  apt-get -y --force-yes install rsyncrypto
3299
 
3304
 
3300
-  if [ ! -f /usr/bin/obnam ]; then
3301
-      echo "ERROR: obnam may not have installed correctly. $CHECK_MESSAGE"
3305
+  if [ ! -f /usr/bin/rsyncrypto ]; then
3306
+      echo "ERROR: rsyncrypto may not have installed correctly. $CHECK_MESSAGE"
3302
       exit 47
3307
       exit 47
3303
   fi
3308
   fi
3304
 
3309
 
3310
+  DIR_TRIM=3
3305
   echo '#!/bin/bash' > /usr/bin/$RESTORE_SCRIPT_NAME
3311
   echo '#!/bin/bash' > /usr/bin/$RESTORE_SCRIPT_NAME
3312
+  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3313
+  echo 'if [ ! -f /etc/ssl/private/rsync.key ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3314
+  echo '  echo "No rsync certificate found"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3315
+  echo '  exit 2' >> /usr/bin/$RESTORE_SCRIPT_NAME
3316
+  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3317
+  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3306
   echo "if [ -b $USB_DRIVE ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3318
   echo "if [ -b $USB_DRIVE ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3307
   echo "  if [ ! -d $USB_MOUNT ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3319
   echo "  if [ ! -d $USB_MOUNT ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3308
   echo "    mkdir $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
3320
   echo "    mkdir $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
3309
   echo "    mount $USB_DRIVE $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
3321
   echo "    mount $USB_DRIVE $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
3310
   echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3322
   echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3311
-  echo "  if [ -f $USB_MOUNT/backup.tar.gz.bfe ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3312
-  echo '    echo "Decrypting encrypted backup"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3313
-  echo "    bcrypt $USB_MOUNT/backup.tar.gz.bfe" >> /usr/bin/$RESTORE_SCRIPT_NAME
3314
-  echo "    cd $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
3315
-  echo "    tar -xzvf $USB_MOUNT/backup.tar.gz" >> /usr/bin/$RESTORE_SCRIPT_NAME
3316
-  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3317
   echo "  if [ ! -d $USB_MOUNT/backup ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3323
   echo "  if [ ! -d $USB_MOUNT/backup ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3318
   echo '    echo "No backup directory was found on the USB drive"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3324
   echo '    echo "No backup directory was found on the USB drive"' >> /usr/bin/$RESTORE_SCRIPT_NAME
3319
   echo "    exit 1" >> /usr/bin/$RESTORE_SCRIPT_NAME
3325
   echo "    exit 1" >> /usr/bin/$RESTORE_SCRIPT_NAME
3320
   echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3326
   echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3327
+  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
3321
   # email
3328
   # email
3322
   if ! [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" ]]; then
3329
   if ! [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" ]]; then
3323
       echo "  if [ -d $USB_MOUNT/backup/Maildir ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3330
       echo "  if [ -d $USB_MOUNT/backup/Maildir ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3324
-      echo "    obnam restore --to /home/$MY_USERNAME/Maildir $USB_MOUNT/backup/Maildir" >> /usr/bin/$RESTORE_SCRIPT_NAME
3325
-      echo "    obnam restore --to /home/$MY_USERNAME/.gnupg $USB_MOUNT/backup/gpg" >> /usr/bin/$RESTORE_SCRIPT_NAME
3331
+	  echo "    rsyncrypto --trim=${DIR_TRIM} -vrd $USB_MOUNT/backup/Maildir /home/$MY_USERNAME/Maildir ~/rr/keys /etc/ssl/certs/rsync.key" >> /usr/bin/$RESTORE_SCRIPT_NAME
3332
+	  echo "    rsyncrypto --trim=${DIR_TRIM} -vrd $USB_MOUNT/backup/gpg /home/$MY_USERNAME/.gnupg ~/rr/keys /etc/ssl/certs/rsync.key" >> /usr/bin/$RESTORE_SCRIPT_NAME
3326
       echo "    cp -f $USB_MOUNT/backup/gpg/.muttrc /home/$MY_USERNAME" >> /usr/bin/$RESTORE_SCRIPT_NAME
3333
       echo "    cp -f $USB_MOUNT/backup/gpg/.muttrc /home/$MY_USERNAME" >> /usr/bin/$RESTORE_SCRIPT_NAME
3327
       echo "    cp -f $USB_MOUNT/backup/gpg/.procmailrc /home/$MY_USERNAME" >> /usr/bin/$RESTORE_SCRIPT_NAME
3334
       echo "    cp -f $USB_MOUNT/backup/gpg/.procmailrc /home/$MY_USERNAME" >> /usr/bin/$RESTORE_SCRIPT_NAME
3328
       echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3335
       echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3329
   fi
3336
   fi
3330
   # personal directory
3337
   # personal directory
3331
   echo "  if [ -d $USB_MOUNT/backup/personal ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3338
   echo "  if [ -d $USB_MOUNT/backup/personal ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3332
-  echo "    obnam restore --to /home/$MY_USERNAME/personal $USB_MOUNT/backup/personal" >> /usr/bin/$RESTORE_SCRIPT_NAME
3339
+  echo "    rsyncrypto --trim=${DIR_TRIM} -vrd $USB_MOUNT/backup/personal /home/$MY_USERNAME/personal ~/rr/keys /etc/ssl/certs/rsync.key" >> /usr/bin/$RESTORE_SCRIPT_NAME
3333
   echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3340
   echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3334
   # SSL certificates
3341
   # SSL certificates
3335
   echo "  if [ -d $USB_MOUNT/backup/ssl ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3342
   echo "  if [ -d $USB_MOUNT/backup/ssl ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3336
-  echo "    obnam restore --to /etc/ssl $USB_MOUNT/backup/ssl" >> /usr/bin/$RESTORE_SCRIPT_NAME
3343
+  echo "    rsyncrypto --trim=${DIR_TRIM} -vrd $USB_MOUNT/backup/ssl /etc/ssl ~/rr/keys /etc/ssl/certs/rsync.key" >> /usr/bin/$RESTORE_SCRIPT_NAME
3337
   echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3344
   echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3338
   # dynamic dns
3345
   # dynamic dns
3339
   echo "  if [ -f $USB_MOUNT/backup/dynamicdns ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3346
   echo "  if [ -f $USB_MOUNT/backup/dynamicdns ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3342
   # web server
3349
   # web server
3343
   echo "  if [ -d /etc/nginx ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3350
   echo "  if [ -d /etc/nginx ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3344
   echo "    if [ -d $USB_MOUNT/backup/webserver ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3351
   echo "    if [ -d $USB_MOUNT/backup/webserver ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3345
-  echo "      obnam restore --to /etc/nginx $USB_MOUNT/backup/webserver" >> /usr/bin/$RESTORE_SCRIPT_NAME
3352
+  echo "      rsyncrypto --trim=${DIR_TRIM} -vrd $USB_MOUNT/backup/webserver /etc/nginx ~/rr/keys /etc/ssl/certs/rsync.key" >> /usr/bin/$RESTORE_SCRIPT_NAME
3346
   echo '    fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3353
   echo '    fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3347
   echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3354
   echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3348
   # owncloud
3355
   # owncloud
3349
   if ! [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" ]]; then
3356
   if ! [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" ]]; then
3350
       if [ $OWNCLOUD_DOMAIN_NAME ]; then
3357
       if [ $OWNCLOUD_DOMAIN_NAME ]; then
3351
           echo "  if [ -d $USB_MOUNT/backup/owncloud ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3358
           echo "  if [ -d $USB_MOUNT/backup/owncloud ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3352
-          echo "    obnam restore --to /var/www/$OWNCLOUD_DOMAIN_NAME $USB_MOUNT/backup/owncloud" >> /usr/bin/$RESTORE_SCRIPT_NAME
3359
+		  echo "    rsyncrypto --trim=${DIR_TRIM} -vrd $USB_MOUNT/backup/owncloud /var/www/$OWNCLOUD_DOMAIN_NAME ~/rr/keys /etc/ssl/certs/rsync.key" >> /usr/bin/$RESTORE_SCRIPT_NAME
3353
           echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3360
           echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3354
       fi
3361
       fi
3355
   fi
3362
   fi
3356
   # prosody
3363
   # prosody
3357
   echo '  if [ -d /var/lib/prosody ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3364
   echo '  if [ -d /var/lib/prosody ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3358
   echo "    if [ -d $USB_MOUNT/backup/prosody ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3365
   echo "    if [ -d $USB_MOUNT/backup/prosody ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3359
-  echo "      obnam restore --to /var/lib/prosody $USB_MOUNT/backup/prosody" >> /usr/bin/$RESTORE_SCRIPT_NAME
3366
+  echo "      rsyncrypto --trim=${DIR_TRIM} -vrd $USB_MOUNT/backup/prosody /var/lib/prosody ~/rr/keys /etc/ssl/certs/rsync.key" >> /usr/bin/$RESTORE_SCRIPT_NAME
3360
   echo '    fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3367
   echo '    fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3361
   echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3368
   echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3362
   # wiki / blog
3369
   # wiki / blog
3363
   if ! [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" ]]; then
3370
   if ! [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" ]]; then
3364
       if [ $WIKI_DOMAIN_NAME ]; then
3371
       if [ $WIKI_DOMAIN_NAME ]; then
3365
           echo "  if [ -d $USB_MOUNT/backup/wiki-blog ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3372
           echo "  if [ -d $USB_MOUNT/backup/wiki-blog ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3366
-          echo "    obnam restore --to /var/www/$WIKI_DOMAIN_NAME $USB_MOUNT/backup/wiki-blog" >> /usr/bin/$RESTORE_SCRIPT_NAME
3373
+		  echo "    rsyncrypto --trim=${DIR_TRIM} -vrd $USB_MOUNT/backup/wiki-blog /var/www/$WIKI_DOMAIN_NAME ~/rr/keys /etc/ssl/certs/rsync.key" >> /usr/bin/$RESTORE_SCRIPT_NAME
3367
           echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3374
           echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3368
       fi
3375
       fi
3369
   fi
3376
   fi
3388
   # dlna
3395
   # dlna
3389
   if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" ]]; then
3396
   if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" ]]; then
3390
       echo "  if [ -d $USB_MOUNT/backup/dlna ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3397
       echo "  if [ -d $USB_MOUNT/backup/dlna ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3391
-      echo "    obnam restore --to /var/cache/minidlna $USB_MOUNT/backup/minidlna" >> /usr/bin/$RESTORE_SCRIPT_NAME
3398
+	  echo "    rsyncrypto --trim=${DIR_TRIM} -vrd $USB_MOUNT/backup/minidlna /var/cache/minidlna ~/rr/keys /etc/ssl/certs/rsync.key" >> /usr/bin/$RESTORE_SCRIPT_NAME
3392
       echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3399
       echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3393
   fi
3400
   fi
3394
   echo 'else' >> /usr/bin/$RESTORE_SCRIPT_NAME
3401
   echo 'else' >> /usr/bin/$RESTORE_SCRIPT_NAME