Ver código fonte

Restore from friend command

Bob Mottram 9 anos atrás
pai
commit
4454206e76
4 arquivos alterados com 648 adições e 951 exclusões
  1. 2
    0
      Makefile
  2. BIN
      man/freedombone-restore-remote.1.gz
  3. 0
    951
      src/freedombone
  4. 646
    0
      src/freedombone-restore-remote

+ 2
- 0
Makefile Ver arquivo

@@ -22,6 +22,7 @@ install:
22 22
 	install -m 755 src/${APP}-backup-local ${DESTDIR}${PREFIX}/bin/backup
23 23
 	install -m 755 src/${APP}-backup-local ${DESTDIR}${PREFIX}/bin/backup2friends
24 24
 	install -m 755 src/${APP}-restore-local ${DESTDIR}${PREFIX}/bin/restore
25
+	install -m 755 src/${APP}-restore-local ${DESTDIR}${PREFIX}/bin/restorefromfriend
25 26
 	mkdir -m 755 -p ${DESTDIR}${PREFIX}/share/man/man1
26 27
 	install -m 644 man/*.1.gz ${DESTDIR}${PREFIX}/share/man/man1
27 28
 	bash -c "./translate install"
@@ -34,6 +35,7 @@ uninstall:
34 35
 	rm -f ${PREFIX}/bin/backup
35 36
 	rm -f ${PREFIX}/bin/backup2friends
36 37
 	rm -f ${PREFIX}/bin/restore
38
+	rm -f ${PREFIX}/bin/restorefromfriend
37 39
 	rm -f ${PREFIX}/bin/meshweb
38 40
 	rm -rf /etc/freedombone
39 41
 	bash -c "./translate uninstall"

BIN
man/freedombone-restore-remote.1.gz Ver arquivo


+ 0
- 951
src/freedombone Ver arquivo

@@ -264,18 +264,6 @@ BACKUP_TYPE='obnam'
264 264
 # Number of days to keep backups for
265 265
 BACKUP_MAX_DAYS=30
266 266
 
267
-# Name of a script used to create a backup of the system on usb drive
268
-BACKUP_SCRIPT_NAME="backup"
269
-
270
-# Name of a script used to restore the system from usb drive
271
-RESTORE_SCRIPT_NAME="restore"
272
-
273
-# name of a script used to backup to friends servers
274
-BACKUP_TO_FRIENDS_SCRIPT_NAME="backup2friends"
275
-
276
-# name of a script used to restore backed up data from a friend
277
-RESTORE_FROM_FRIEND_SCRIPT_NAME="restorefromfriend"
278
-
279 267
 # Location of the certificate used to encrypt backups
280 268
 BACKUP_CERTIFICATE=/etc/ssl/private/backup.key
281 269
 
@@ -2734,80 +2722,6 @@ function get_mariadb_owncloud_admin_password {
2734 2722
   fi
2735 2723
 }
2736 2724
 
2737
-function backup_directory_to_usb {
2738
-  echo 'function backup_directory_to_usb {' >> /usr/bin/$BACKUP_SCRIPT_NAME
2739
-  echo '  if [ ! -d ${1} ]; then' >> /usr/bin/$BACKUP_SCRIPT_NAME
2740
-  echo '    echo "WARNING: directory does not exist: ${1}"' >> /usr/bin/$BACKUP_SCRIPT_NAME
2741
-  echo '  else' >> /usr/bin/$BACKUP_SCRIPT_NAME
2742
-
2743
-  if [[ $BACKUP_TYPE == 'obnam' ]]; then
2744
-      echo '    BACKUP_KEY_EXISTS=$(gpg --list-keys "$MY_NAME (backup key)")' >> /usr/bin/$BACKUP_SCRIPT_NAME
2745
-      echo '    if [ ! "$?" = "0" ]; then' >> /usr/bin/$BACKUP_SCRIPT_NAME
2746
-      echo '      echo "Backup key could not be found"' >> /usr/bin/$BACKUP_SCRIPT_NAME
2747
-      echo '      exit 43382' >> /usr/bin/$BACKUP_SCRIPT_NAME
2748
-      echo '    fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
2749
-      echo -n '    MY_BACKUP_KEY_ID=$(gpg --list-keys "$MY_NAME (backup key)" ' >> /usr/bin/$BACKUP_SCRIPT_NAME
2750
-      echo -n "| grep 'pub ' | awk -F ' ' '{print " >> /usr/bin/$BACKUP_SCRIPT_NAME
2751
-      echo -n '$2' >> /usr/bin/$BACKUP_SCRIPT_NAME
2752
-      echo -n "}' | awk -F '/' '{print " >> /usr/bin/$BACKUP_SCRIPT_NAME
2753
-      echo -n '$2' >> /usr/bin/$BACKUP_SCRIPT_NAME
2754
-      echo "}')" >> /usr/bin/$BACKUP_SCRIPT_NAME
2755
-      echo '    obnam force-lock -r $USB_MOUNT/backup/${2} --encrypt-with $MY_BACKUP_KEY_ID ${1}' >> /usr/bin/$BACKUP_SCRIPT_NAME
2756
-      echo '    obnam backup -r $USB_MOUNT/backup/${2} --encrypt-with $MY_BACKUP_KEY_ID ${1}' >> /usr/bin/$BACKUP_SCRIPT_NAME
2757
-      echo -n "    obnam forget --keep=${BACKUP_MAX_DAYS}d " >> /usr/bin/$BACKUP_SCRIPT_NAME
2758
-      echo '-r $USB_MOUNT/backup/${2} --encrypt-with $MY_BACKUP_KEY_ID' >> /usr/bin/$BACKUP_SCRIPT_NAME
2759
-  else
2760
-      # For rsyncrypto usage see http://archive09.linux.com/feature/125322
2761
-      echo "    BACKUP_CERTIFICATE=$BACKUP_CERTIFICATE" >> /usr/bin/$BACKUP_SCRIPT_NAME
2762
-      echo '    rsyncrypto -v -r ${1} $USB_MOUNT/backup/${2} $USB_MOUNT/backup/${2}.keys $BACKUP_CERTIFICATE' >> /usr/bin/$BACKUP_SCRIPT_NAME
2763
-  fi
2764
-
2765
-  echo '    if [ ! "$?" = "0" ]; then' >> /usr/bin/$BACKUP_SCRIPT_NAME
2766
-  echo '      umount $USB_MOUNT' >> /usr/bin/$BACKUP_SCRIPT_NAME
2767
-  echo '      rm -rf $USB_MOUNT' >> /usr/bin/$BACKUP_SCRIPT_NAME
2768
-  echo '      if [[ ${1} == "/root/temp"* || ${1} == *"tempbackup" ]]; then' >> /usr/bin/$BACKUP_SCRIPT_NAME
2769
-  echo '        shred -zu ${1}/*' >> /usr/bin/$BACKUP_SCRIPT_NAME
2770
-  echo '        rm -rf ${1}' >> /usr/bin/$BACKUP_SCRIPT_NAME
2771
-  echo '      fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
2772
-  echo '      exit 853' >> /usr/bin/$BACKUP_SCRIPT_NAME
2773
-  echo '    fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
2774
-  echo '    if [[ ${1} == "/root/temp"* || ${1} == *"tempbackup" ]]; then' >> /usr/bin/$BACKUP_SCRIPT_NAME
2775
-  echo '        shred -zu ${1}/*' >> /usr/bin/$BACKUP_SCRIPT_NAME
2776
-  echo '        rm -rf ${1}' >> /usr/bin/$BACKUP_SCRIPT_NAME
2777
-  echo '    fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
2778
-  echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
2779
-  echo '}' >> /usr/bin/$BACKUP_SCRIPT_NAME
2780
-}
2781
-
2782
-function backup_database {
2783
-  echo '' >> /usr/bin/$BACKUP_SCRIPT_NAME
2784
-  echo 'function backup_database {' >> /usr/bin/$BACKUP_SCRIPT_NAME
2785
-  echo '  if [ ! -d $USB_MOUNT/backup/${1} ]; then' >> /usr/bin/$BACKUP_SCRIPT_NAME
2786
-  echo '    mkdir -p $USB_MOUNT/backup/${1}' >> /usr/bin/$BACKUP_SCRIPT_NAME
2787
-  echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
2788
-  echo '  if [ ! -d $USB_MOUNT/backup/${1}data ]; then' >> /usr/bin/$BACKUP_SCRIPT_NAME
2789
-  echo '    mkdir -p $USB_MOUNT/backup/${1}data' >> /usr/bin/$BACKUP_SCRIPT_NAME
2790
-  echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
2791
-  echo '  if [ ! -d /root/temp${1}data ]; then' >> /usr/bin/$BACKUP_SCRIPT_NAME
2792
-  echo '    mkdir -p /root/temp${1}data' >> /usr/bin/$BACKUP_SCRIPT_NAME
2793
-  echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
2794
-  echo '  echo "Obtaining ${1} database backup"' >> /usr/bin/$BACKUP_SCRIPT_NAME
2795
-  echo -n '  mysqldump --password=$DATABASE_PASSWORD ' >> /usr/bin/$BACKUP_SCRIPT_NAME
2796
-  echo '${1} > /root/temp${1}data/${1}.sql' >> /usr/bin/$BACKUP_SCRIPT_NAME
2797
-  echo '  if [ ! -s /root/temp${1}data/${1}.sql ]; then' >> /usr/bin/$BACKUP_SCRIPT_NAME
2798
-  echo '    echo "${1} database could not be saved"' >> /usr/bin/$BACKUP_SCRIPT_NAME
2799
-  echo '    if [ ! $DATABASE_PASSWORD ]; then' >> /usr/bin/$BACKUP_SCRIPT_NAME
2800
-  echo '      echo "No MariaDB password was given"' >> /usr/bin/$BACKUP_SCRIPT_NAME
2801
-  echo '    fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
2802
-  echo '    shred -zu /root/temp${1}data/*' >> /usr/bin/$BACKUP_SCRIPT_NAME
2803
-  echo '    rm -rf /root/temp${1}data' >> /usr/bin/$BACKUP_SCRIPT_NAME
2804
-  echo '    umount $USB_MOUNT' >> /usr/bin/$BACKUP_SCRIPT_NAME
2805
-  echo '    rm -rf $USB_MOUNT' >> /usr/bin/$BACKUP_SCRIPT_NAME
2806
-  echo '    exit 296' >> /usr/bin/$BACKUP_SCRIPT_NAME
2807
-  echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
2808
-  echo '}' >> /usr/bin/$BACKUP_SCRIPT_NAME
2809
-}
2810
-
2811 2725
 function restore_directory_from_usb {
2812 2726
   script_name=$1
2813 2727
   echo 'function restore_directory_from_usb {' >> $script_name
@@ -3136,870 +3050,6 @@ function backup_to_friends_servers {
3136 3050
   echo 'backup_to_friends_servers' >> $COMPLETION_FILE
3137 3051
 }
3138 3052
 
3139
-function restore_directory_from_friend {
3140
-  echo 'function restore_directory_from_friend {' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3141
-  echo '  if [ ! -d ${1} ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3142
-  echo '    mkdir ${1}' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3143
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3144
-  if [[ $BACKUP_TYPE == 'obnam' ]]; then
3145
-      echo -n '  obnam restore -r $SERVER_DIRECTORY/backup/' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3146
-      echo '${2} --to ${1}' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3147
-  else
3148
-      echo "  BACKUP_CERTIFICATE=$BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3149
-      echo -n '  rsyncrypto -v -d -r $SERVER_DIRECTORY/backup/' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3150
-      echo -n '${2} ${1} ' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3151
-      echo -n '$SERVER_DIRECTORY/backup/' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3152
-      echo '${2}.keys $BACKUP_CERTIFICATE' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3153
-  fi
3154
-  echo '}' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3155
-}
3156
-
3157
-function restore_database_from_friend {
3158
-  echo 'function restore_database_from_friend {' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3159
-  echo "  DATABASE_PASSWORD=$DATABASE_PASSWORD" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3160
-  if [[ $BACKUP_TYPE == 'obnam' ]]; then
3161
-      echo '  RESTORE_SUBDIR="root"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3162
-  else
3163
-      echo '  RESTORE_SUBDIR="remoterestore/backup/${1}data"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3164
-  fi
3165
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3166
-  echo '  if [ -d $SERVER_DIRECTORY/backup/${1} ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3167
-  echo '    echo "Restoring ${1} database"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3168
-  echo '    restore_directory_from_friend /root/temp${1}data ${1}data' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3169
-  echo '    if [ ! -f /root/temp${1}data/${RESTORE_SUBDIR}/temp${1}data/${1}.sql ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3170
-  echo '      echo "Unable to restore ${1} database"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3171
-  echo '      rm -rf /root/temp${1}data' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3172
-  echo '      exit 503' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3173
-  echo '    fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3174
-  echo -n '    mysqlsuccess=$(mysql -u root --password=$DATABASE_PASSWORD ' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3175
-  echo '${1} -o < /root/temp${1}data/${RESTORE_SUBDIR}/temp${1}data/${1}.sql)' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3176
-  echo '    if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3177
-  echo '      echo "$mysqlsuccess"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3178
-  echo '      exit 964' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3179
-  echo '    fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3180
-  echo '    shred -zu /root/temp${1}data/${RESTORE_SUBDIR}/temp${1}data/*' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3181
-  echo '    rm -rf /root/temp${1}data' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3182
-  echo '    echo "Restoring ${1} installation"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3183
-  echo '    restore_directory_from_friend /root/temp${1} ${1}' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3184
-  if [[ $BACKUP_TYPE == 'obnam' ]]; then
3185
-      echo '    RESTORE_SUBDIR="var"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3186
-  else
3187
-      echo '    RESTORE_SUBDIR="remoterestore/backup/${1}"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3188
-  fi
3189
-  echo '    if [ ${1} ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3190
-  echo '      if [ -d /var/www/${2}/htdocs ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3191
-  echo '        if [ -d /root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3192
-  echo '          rm -rf /var/www/${2}/htdocs' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3193
-  echo '          mv /root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs /var/www/${2}/' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3194
-  echo '          if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3195
-  echo '            exit 683' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3196
-  echo '          fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3197
-  echo '          if [ -d /etc/letsencrypt/live/${2} ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3198
-  echo '              ln -s /etc/letsencrypt/live/${2}/privkey.pem /etc/ssl/private/${2}.key' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3199
-  echo '              ln -s /etc/letsencrypt/live/${2}/fullchain.pem /etc/ssl/certs/${2}.pem' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3200
-  echo '          else' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3201
-  echo '              # Ensure that the bundled SSL cert is being used' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3202
-  echo '              if [ -f /etc/ssl/certs/${2}.bundle.crt ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3203
-  echo '                  sed -i "s|${2}.crt|${2}.bundle.crt|g" /etc/nginx/sites-available/${2}' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3204
-  echo '              fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3205
-  echo '          fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3206
-  echo '        fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3207
-  echo '      fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3208
-  echo '    fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3209
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3210
-  echo '}' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3211
-}
3212
-
3213
-function restore_from_friend {
3214
-  if grep -Fxq "restore_from_friend" $COMPLETION_FILE; then
3215
-      return
3216
-  fi
3217
-
3218
-  apt-get -y install rsyncrypto sshpass obnam
3219
-
3220
-  get_mariadb_password
3221
-  get_mariadb_gnusocial_admin_password
3222
-  get_mariadb_hubzilla_admin_password
3223
-  get_mariadb_owncloud_admin_password
3224
-  get_mariadb_git_admin_password
3225
-
3226
-  if ! grep -q "restore from a friend's server" /home/$MY_USERNAME/README; then
3227
-      echo '' >> /home/$MY_USERNAME/README
3228
-      echo '' >> /home/$MY_USERNAME/README
3229
-      echo 'Restoring from backups to friends servers' >> /home/$MY_USERNAME/README
3230
-      echo '=========================================' >> /home/$MY_USERNAME/README
3231
-      echo "To restore from a friend's server use the command:" >> /home/$MY_USERNAME/README
3232
-      echo '' >> /home/$MY_USERNAME/README
3233
-      echo "  $RESTORE_FROM_FRIEND_SCRIPT_NAME [server]" >> /home/$MY_USERNAME/README
3234
-      chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
3235
-      chmod 600 /home/$MY_USERNAME/README
3236
-  fi
3237
-
3238
-  echo '#!/bin/bash' > /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3239
-  echo 'SERVER_NAME=$1' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3240
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3241
-  echo "COMPLETION_FILE=$COMPLETION_FILE" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3242
-  echo -n 'ADMIN_USERNAME=$(cat $COMPLETION_FILE | grep "Admin user" | ' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3243
-  echo -n"awk -F ':' '{print " >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3244
-  echo -n'$2' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3245
-  echo "}')" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3246
-  echo 'MY_USERNAME=$ADMIN_USERNAME' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3247
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3248
-  echo '# Temporary location for data to be backed up to other servers' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3249
-  echo 'SERVER_DIRECTORY=/root/remoterestore' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3250
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3251
-
3252
-  echo 'if [ ! $SERVER_NAME ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3253
-  echo "    echo '$RESTORE_FROM_FRIEND_SCRIPT_NAME [server]'" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3254
-  echo '    exit 1' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3255
-  echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3256
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3257
-  echo "if [ ! -f $FRIENDS_SERVERS_LIST ]; then" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3258
-  echo "    echo 'No friends list found at $FRIENDS_SERVERS_LIST'" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3259
-  echo '    exit 2' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3260
-  echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3261
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3262
-  echo -n 'if ! grep -q "$SERVER_NAME" ' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3263
-  echo "$FRIENDS_SERVERS_LIST; then" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3264
-  echo '    echo "Server not found within the friends list"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3265
-  echo '    exit 3' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3266
-  echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3267
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3268
-  echo -n 'REMOTE_SERVER=$(grep -i "$SERVER_NAME" ' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3269
-  echo -n "$FRIENDS_SERVERS_LIST | awk -F ' ' '{print " >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3270
-  echo -n '$1' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3271
-  echo "}')" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3272
-  echo -n 'REMOTE_SSH_PORT=$(grep -i "$SERVER_NAME" ' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3273
-  echo -n "$FRIENDS_SERVERS_LIST | awk -F ' ' '{print " >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3274
-  echo -n '$2' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3275
-  echo "}')" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3276
-  echo -n 'REMOTE_PASSWORD=$(grep -i "$SERVER_NAME" ' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3277
-  echo -n "$FRIENDS_SERVERS_LIST | awk -F ' ' '{print " >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3278
-  echo -n '$3' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3279
-  echo "}')" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3280
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3281
-
3282
-  echo '# Check that a backup key exists' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3283
-  echo "if [ ! -f $BACKUP_CERTIFICATE ]; then" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3284
-  echo "  echo 'No backup key was found in $BACKUP_CERTIFICATE'" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3285
-  echo '  exit 84' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3286
-  echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3287
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3288
-
3289
-  # Rsync from the remote server back to this server
3290
-
3291
-  echo 'NOW=$(date +"%Y-%m-%d %H:%M:%S")' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3292
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3293
-
3294
-  echo -n 'echo "$NOW Starting restore from $REMOTE_SERVER" >> ' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3295
-  echo "$REMOTE_BACKUPS_LOG" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3296
-
3297
-  echo -n 'rsync -ratlzv --rsh="/usr/bin/sshpass -p $REMOTE_PASSWORD ssh -p $REMOTE_SSH_PORT -o StrictHostKeyChecking=no" ' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3298
-  echo '$REMOTE_SERVER/backup $SERVER_DIRECTORY' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3299
-  echo 'if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3300
-  echo -n '  echo "$NOW Restore from $REMOTE_SERVER failed" >> ' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3301
-  echo "$REMOTE_BACKUPS_LOG" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3302
-  echo '  # Send a warning email' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3303
-  echo -n '  echo "Restore from $REMOTE_SERVER failed" | mail -s "Freedombone restore from friend" ' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3304
-  echo "$MY_EMAIL_ADDRESS" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3305
-  echo '  exit 790' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3306
-  echo 'else' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3307
-  echo -n '  echo "$NOW Restored encrypted data from $REMOTE_SERVER" >> ' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3308
-  echo "$REMOTE_BACKUPS_LOG" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3309
-  echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3310
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3311
-
3312
-  echo '# MariaDB password' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3313
-  echo -n 'DATABASE_PASSWORD=$(cat ' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3314
-  echo "$DATABASE_PASSWORD_FILE)" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3315
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3316
-
3317
-  restore_directory_from_friend
3318
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3319
-  restore_database_from_friend
3320
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3321
-
3322
-  echo 'if [ -d $SERVER_DIRECTORY/backup/mariadb ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3323
-  RESTORE_SUBDIR='root/'
3324
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3325
-      RESTORE_SUBDIR='remoterestore/backup/mariadb/'
3326
-  fi
3327
-  echo '  echo "Restoring mysql settings"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3328
-  echo '  restore_directory_from_friend /root/tempmariadb mariadb' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3329
-  echo '  echo "Get the MariaDB password from the backup"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3330
-  echo "  if [ ! -f /root/tempmariadb/${RESTORE_SUBDIR}tempmariadb/db ]; then" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3331
-  echo '    echo "MariaDB password file not found"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3332
-  echo '    exit 495' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3333
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3334
-  echo -n '  BACKUP_MARIADB_PASSWORD=$(cat /root/tempmariadb/' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3335
-  echo "${RESTORE_SUBDIR}tempmariadb/db)" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3336
-  echo '  if [[ $BACKUP_MARIADB_PASSWORD != $DATABASE_PASSWORD ]]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3337
-  echo '    echo "Restore the MariaDB user table"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3338
-  echo -n '    mysqlsuccess=$(mysql -u root --password=$DATABASE_PASSWORD mysql -o < ' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3339
-  echo "/root/tempmariadb/${RESTORE_SUBDIR}tempmariadb/mysql.sql)" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3340
-  echo '    if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3341
-  echo '      echo "Try again using the password obtained from backup"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3342
-  echo -n '      mysqlsuccess=$(mysql -u root --password=$BACKUP_MARIADB_PASSWORD mysql -o < ' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3343
-  echo "/root/tempmariadb/${RESTORE_SUBDIR}tempmariadb/mysql.sql)" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3344
-  echo '    fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3345
-  echo '    if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3346
-  echo '      echo "$mysqlsuccess"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3347
-  echo '      exit 962' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3348
-  echo '    fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3349
-  echo '    echo "Restarting database"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3350
-  echo '    service mysql restart' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3351
-  echo '    echo "Change the MariaDB password to the backup version"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3352
-  echo '    DATABASE_PASSWORD=$BACKUP_MARIADB_PASSWORD' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3353
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3354
-  echo "  shred -zu /root/tempmariadb/${RESTORE_SUBDIR}tempmariadb/db" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3355
-  echo '  rm -rf /root/tempmariadb' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3356
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3357
-  echo '  # Change database password file' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3358
-  echo -n '  echo "$DATABASE_PASSWORD" > ' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3359
-  echo "$DATABASE_PASSWORD_FILE" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3360
-  echo "  chmod 600 $DATABASE_PASSWORD_FILE" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3361
-  echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3362
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3363
-
3364
-  RESTORE_SUBDIR='home/'
3365
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3366
-      RESTORE_SUBDIR='remoterestore/backup/letsencrypt/'
3367
-  fi
3368
-  echo 'if [ -d $SERVER_DIRECTORY/backup/letsencrypt ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3369
-  echo '    echo "Restoring Lets Encrypt settings"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3370
-  echo '    restore_directory_from_friend / letsencrypt' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3371
-  echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3372
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3373
-
3374
-  RESTORE_SUBDIR='home/'
3375
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3376
-      RESTORE_SUBDIR='remoterestore/backup/mutt/'
3377
-  fi
3378
-  echo 'for d in $SERVER_DIRECTORY/backup/mutt/*/ ; do' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3379
-  echo '  USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $6}'"'"')' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3380
-  echo '  if [[ $USERNAME != "git" ]]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3381
-  echo '    if [ -d $SERVER_DIRECTORY/backup/mutt/$USERNAME ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3382
-  echo '      if [ ! -d /home/$USERNAME ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3383
-  echo '          freedombone-adduser $USERNAME' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3384
-  echo '      fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3385
-  echo '      echo "Restoring Mutt settings for $USERNAME"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3386
-  echo '      restore_directory_from_friend /root/tempmutt mutt/$USERNAME' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3387
-  echo -n "      if [ -f /root/tempmutt/${RESTORE_SUBDIR}" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3388
-  echo '$USERNAME/tempbackup/.muttrc ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3389
-  echo -n "        cp -f /root/tempmutt/${RESTORE_SUBDIR}" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3390
-  echo '$USERNAME/tempbackup/.muttrc /home/$USERNAME/.muttrc' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3391
-  echo '      fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3392
-  echo -n "      if [ -f /root/tempmutt/${RESTORE_SUBDIR}" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3393
-  echo '$USERNAME/tempbackup/Muttrc ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3394
-  echo -n "        cp -f /root/tempmutt/${RESTORE_SUBDIR}" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3395
-  echo '$USERNAME/tempbackup/Muttrc /etc/Muttrc' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3396
-  echo '      fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3397
-  echo '      if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3398
-  echo '        rm -rf /root/tempmutt' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3399
-  echo '        exit 276' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3400
-  echo '      fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3401
-  echo '      rm -rf /root/tempmutt' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3402
-  echo '    fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3403
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3404
-  echo 'done' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3405
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3406
-
3407
-  RESTORE_SUBDIR='home'
3408
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3409
-      RESTORE_SUBDIR='remoterestore/backup/gnupg'
3410
-  fi
3411
-  echo 'for d in $SERVER_DIRECTORY/backup/gnupg/*/ ; do' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3412
-  echo '  USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $6}'"'"')' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3413
-  echo '  if [[ $USERNAME != "git" ]]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3414
-  echo '    if [ -d $SERVER_DIRECTORY/backup/gnupg/$USERNAME ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3415
-  echo '      if [ ! -d /home/$USERNAME ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3416
-  echo '          freedombone-adduser $USERNAME' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3417
-  echo '      fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3418
-  echo '      echo "Restoring gnupg settings for $USERNAME"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3419
-  echo '      restore_directory_from_friend /root/tempgnupg gnupg/$USERNAME' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3420
-  echo -n "      cp -r /root/tempgnupg/${RESTORE_SUBDIR}/" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3421
-  echo '$USERNAME/.gnupg /home/$USERNAME/' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3422
-  echo '      if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3423
-  echo '        rm -rf /root/tempgnupg' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3424
-  echo '        exit 276' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3425
-  echo '      fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3426
-  echo '      rm -rf /root/tempgnupg' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3427
-  echo '      if [[ "$USERNAME" == "$MY_USERNAME" ]]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3428
-  echo '        cp -r /home/$USERNAME/.gnupg /root' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3429
-  echo '        if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3430
-  echo '          exit 283' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3431
-  echo '        fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3432
-  echo '      fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3433
-  echo '    fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3434
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3435
-  echo 'done' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3436
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3437
-
3438
-  RESTORE_SUBDIR='home'
3439
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3440
-      RESTORE_SUBDIR='remoterestore/backup/procmail'
3441
-  fi
3442
-  echo 'for d in $SERVER_DIRECTORY/backup/procmail/*/ ; do' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3443
-  echo '  USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $6}'"'"')' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3444
-  echo '  if [[ $USERNAME != "git" ]]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3445
-  echo '    if [ -d $SERVER_DIRECTORY/backup/procmail/$USERNAME ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3446
-  echo '      if [ ! -d /home/$USERNAME ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3447
-  echo '          freedombone-adduser $USERNAME' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3448
-  echo '      fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3449
-  echo '      echo "Restoring procmail settings for $USERNAME"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3450
-  echo '      restore_directory_from_friend /root/tempprocmail procmail/$USERNAME' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3451
-  echo -n "      cp -f /root/tempprocmail/${RESTORE_SUBDIR}" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3452
-  echo '/$USERNAME/tempbackup/.procmailrc /home/$USERNAME/' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3453
-  echo '      if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3454
-  echo '        rm -rf /root/tempprocmail' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3455
-  echo '        exit 276' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3456
-  echo '      fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3457
-  echo '      rm -rf /root/tempprocmail' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3458
-  echo '    fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3459
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3460
-  echo 'done' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3461
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3462
-
3463
-  RESTORE_SUBDIR='home'
3464
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3465
-      RESTORE_SUBDIR='remoterestore/backup/spamassassin'
3466
-  fi
3467
-  echo 'for d in $SERVER_DIRECTORY/backup/spamassassin/*/ ; do' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3468
-  echo '  USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $6}'"'"')' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3469
-  echo '  if [[ $USERNAME != "git" ]]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3470
-  echo '    if [ -d $SERVER_DIRECTORY/backup/spamassassin/$USERNAME ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3471
-  echo '      if [ ! -d /home/$USERNAME ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3472
-  echo '          freedombone-adduser $USERNAME' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3473
-  echo '      fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3474
-  echo '      echo "Restoring spamassassin settings for $USERNAME"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3475
-  echo '      restore_directory_from_friend /root/tempspamassassin spamassassin/$USERNAME' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3476
-  echo -n "      cp -rf /root/tempspamassassin/${RESTORE_SUBDIR}/" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3477
-  echo '$USERNAME/.spamassassin /home/$USERNAME/' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3478
-  echo '      if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3479
-  echo '        rm -rf /root/tempspamassassin' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3480
-  echo '        exit 276' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3481
-  echo '      fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3482
-  echo '      rm -rf /root/tempspamassassin' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3483
-  echo '    fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3484
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3485
-  echo 'done' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3486
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3487
-
3488
-  RESTORE_SUBDIR='home'
3489
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3490
-      RESTORE_SUBDIR='remoterestore/backup/readme'
3491
-  fi
3492
-  echo 'if [ -d $SERVER_DIRECTORY/backup/readme ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3493
-  echo '  echo "Restoring README"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3494
-  echo '  restore_directory_from_friend /root/tempreadme readme' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3495
-  echo -n "  cp -f /root/tempreadme/${RESTORE_SUBDIR}/" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3496
-  echo '$MY_USERNAME/tempbackup/README /home/$MY_USERNAME/' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3497
-  echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3498
-  echo '    rm -rf /root/tempreadme' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3499
-  echo '    exit 276' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3500
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3501
-  echo '  rm -rf /root/tempreadme' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3502
-  echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3503
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3504
-
3505
-  RESTORE_SUBDIR='home'
3506
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3507
-      RESTORE_SUBDIR='remoterestore/backup/ipfs'
3508
-  fi
3509
-  echo 'if [ -d $SERVER_DIRECTORY/backup/ipfs ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3510
-  echo '  echo "Restoring IPFS"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3511
-  echo '  restore_directory_from_friend /root/tempipfs ipfs' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3512
-  echo -n "  cp -rf /root/tempipfs/${RESTORE_SUBDIR}/" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3513
-  echo '$MY_USERNAME/.ipfs/* /home/$MY_USERNAME/.ipfs' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3514
-  echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3515
-  echo '    rm -rf /root/tempipfs' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3516
-  echo '    exit 276' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3517
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3518
-  echo '  rm -rf /root/tempipfs' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3519
-  echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3520
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3521
-
3522
-  RESTORE_SUBDIR='home'
3523
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3524
-      RESTORE_SUBDIR='remoterestore/backup/ssh'
3525
-  fi
3526
-  echo 'for d in $SERVER_DIRECTORY/backup/ssh/*/ ; do' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3527
-  echo '  USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $6}'"'"')' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3528
-  echo '  if [[ $USERNAME != "git" ]]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3529
-  echo '    if [ -d $SERVER_DIRECTORY/backup/ssh/$USERNAME ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3530
-  echo '      if [ ! -d /home/$USERNAME ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3531
-  echo '          freedombone-adduser $USERNAME' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3532
-  echo '      fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3533
-  echo '      echo "Restoring ssh keys for $USERNAME"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3534
-  echo '      restore_directory_from_friend /root/tempssh ssh/$USERNAME' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3535
-  echo -n "      cp -r /root/tempssh/${RESTORE_SUBDIR}/" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3536
-  echo '$USERNAME/.ssh /home/$USERNAME/' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3537
-  echo '      if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3538
-  echo '        rm -rf /root/tempssh' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3539
-  echo '        exit 664' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3540
-  echo '      fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3541
-  echo '      rm -rf /root/tempssh' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3542
-  echo '    fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3543
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3544
-  echo 'done' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3545
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3546
-
3547
-  RESTORE_SUBDIR='home'
3548
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3549
-      RESTORE_SUBDIR='remoterestore/backup/config'
3550
-  fi
3551
-  echo 'for d in $SERVER_DIRECTORY/backup/config/*/ ; do' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3552
-  echo '  USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $6}'"'"')' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3553
-  echo '  if [[ $USERNAME != "git" ]]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3554
-  echo '    if [ -d $SERVER_DIRECTORY/backup/config/$USERNAME ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3555
-  echo '      if [ ! -d /home/$USERNAME ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3556
-  echo '          freedombone-adduser $USERNAME' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3557
-  echo '      fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3558
-  echo '      echo "Restoring config files for $USERNAME"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3559
-  echo '      restore_directory_from_friend /root/tempconfig config/$USERNAME' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3560
-  echo -n "      cp -r /root/tempconfig/${RESTORE_SUBDIR}/" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3561
-  echo '$USERNAME/.config /home/$USERNAME/' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3562
-  echo '      if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3563
-  echo '        rm -rf /root/tempconfig' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3564
-  echo '        exit 664' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3565
-  echo '      fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3566
-  echo '      rm -rf /root/tempconfig' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3567
-  echo '    fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3568
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3569
-  echo 'done' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3570
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3571
-
3572
-  RESTORE_SUBDIR='etc'
3573
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3574
-      RESTORE_SUBDIR='remoterestore/backup/ssl'
3575
-  fi
3576
-  echo 'if [ -d $SERVER_DIRECTORY/backup/ssl ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3577
-  echo '  echo "Restoring certificates"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3578
-  echo '  restore_directory_from_friend /root/tempssl ssl' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3579
-  echo -n "  cp -r /root/tempssl/${RESTORE_SUBDIR}/" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3580
-  echo 'ssl/* /etc/ssl' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3581
-  echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3582
-  echo '    exit 276' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3583
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3584
-  echo '  rm -rf /root/tempssl' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3585
-  echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3586
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3587
-
3588
-  RESTORE_SUBDIR='home'
3589
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3590
-      RESTORE_SUBDIR='remoterestore/backup/projects'
3591
-  fi
3592
-  echo 'for d in $SERVER_DIRECTORY/backup/projects/*/ ; do' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3593
-  echo '  USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $6}'"'"')' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3594
-  echo '  if [[ $USERNAME != "git" ]]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3595
-  echo '    if [ -d $SERVER_DIRECTORY/backup/projects/$USERNAME ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3596
-  echo '      if [ ! -d /home/$USERNAME ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3597
-  echo '          freedombone-adduser $USERNAME' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3598
-  echo '      fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3599
-  echo '      echo "Restoring projects for $USERNAME"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3600
-  echo '      restore_directory_from_friend /root/tempprojects projects/$USERNAME' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3601
-  echo '      if [ -d /home/$USERNAME/projects ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3602
-  echo '        rm -rf /home/$USERNAME/projects' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3603
-  echo '      fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3604
-  echo -n "      mv /root/tempprojects/${RESTORE_SUBDIR}/" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3605
-  echo '$USERNAME/projects /home/$USERNAME' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3606
-  echo '      if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3607
-  echo '        exit 166' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3608
-  echo '      fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3609
-  echo '      rm -rf /root/tempprojects' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3610
-  echo '    fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3611
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3612
-  echo 'done' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3613
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3614
-
3615
-  RESTORE_SUBDIR='home'
3616
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3617
-      RESTORE_SUBDIR='remoterestore/backup/personal'
3618
-  fi
3619
-  echo 'for d in $SERVER_DIRECTORY/backup/personal/*/ ; do' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3620
-  echo '  USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $6}'"'"')' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3621
-  echo '  if [[ $USERNAME != "git" ]]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3622
-  echo '    if [ -d $SERVER_DIRECTORY/backup/personal/$USERNAME ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3623
-  echo '      if [ ! -d /home/$USERNAME ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3624
-  echo '          freedombone-adduser $USERNAME' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3625
-  echo '      fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3626
-  echo '      echo "Restoring personal settings for $USERNAME"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3627
-  echo '      restore_directory_from_friend /root/temppersonal personal/$USERNAME' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3628
-  echo '      if [ -d /home/$USERNAME/personal ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3629
-  echo '        rm -rf /home/$USERNAME/personal' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3630
-  echo '      fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3631
-  echo -n "      mv /root/temppersonal/${RESTORE_SUBDIR}/" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3632
-  echo '$USERNAME/personal /home/$USERNAME' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3633
-  echo '      if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3634
-  echo '        exit 184' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3635
-  echo '      fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3636
-  echo '      rm -rf /root/temppersonal' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3637
-  echo '    fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3638
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3639
-  echo 'done' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3640
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3641
-
3642
-  RESTORE_SUBDIR='root'
3643
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3644
-      RESTORE_SUBDIR='remoterestore/backup/mailinglist'
3645
-  fi
3646
-  echo "if [ -d $PUBLIC_MAILING_LIST_DIRECTORY ]; then" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3647
-  echo '  echo "Restoring public mailing list"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3648
-  echo '  restore_directory_from_friend /root/tempmailinglist mailinglist' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3649
-  echo "  cp -r /root/tempmailinglist/${RESTORE_SUBDIR}/spool/mlmmj/* $PUBLIC_MAILING_LIST_DIRECTORY" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3650
-  echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3651
-  echo '    exit 526' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3652
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3653
-  echo '  rm -rf /root/tempmailinglist' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3654
-  echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3655
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3656
-
3657
-  RESTORE_SUBDIR='var'
3658
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3659
-      RESTORE_SUBDIR='remoterestore/backup/xmpp'
3660
-  fi
3661
-  echo "if [ -d $XMPP_DIRECTORY ]; then" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3662
-  echo '  echo "Restoring XMPP settings"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3663
-  echo '  restore_directory_from_friend /root/tempxmpp xmpp' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3664
-  echo "  cp -r /root/tempxmpp/${RESTORE_SUBDIR}/lib/prosody/* $XMPP_DIRECTORY" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3665
-  echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3666
-  echo '    exit 725' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3667
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3668
-  echo '  rm -rf /root/tempxmpp' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3669
-  echo '  service prosody restart' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3670
-  echo '  chown -R prosody:prosody /var/lib/prosody/*' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3671
-  echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3672
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3673
-
3674
-  BACKUP_INCLUDES_WEBSITES="no"
3675
-
3676
-  if grep -Fxq "install_gnu_social" $COMPLETION_FILE; then
3677
-      BACKUP_INCLUDES_WEBSITES="yes"
3678
-      echo "restore_database_from_friend gnusocial $MICROBLOG_DOMAIN_NAME" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3679
-      echo "if [ -d /root/tempgnusocial ]; then" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3680
-      echo "  rm -rf /root/tempgnusocial" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3681
-      echo "fi" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3682
-  fi
3683
-
3684
-  if grep -Fxq "install_hubzilla" $COMPLETION_FILE; then
3685
-      BACKUP_INCLUDES_WEBSITES="yes"
3686
-      echo "restore_database_from_friend hubzilla $HUBZILLA_DOMAIN_NAME" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3687
-      echo 'if [ -d $SERVER_DIRECTORY/backup/hubzilla ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3688
-      echo "  if [ ! -d /var/www/$HUBZILLA_DOMAIN_NAME/htdocs/store/[data]/smarty3 ]; then" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3689
-      echo "    mkdir -p /var/www/$HUBZILLA_DOMAIN_NAME/htdocs/store/[data]/smarty3" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3690
-      echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3691
-      echo "  chmod 777 /var/www/$HUBZILLA_DOMAIN_NAME/htdocs/store/[data]/smarty3" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3692
-      echo "  chown -R www-data:www-data /var/www/$HUBZILLA_DOMAIN_NAME/htdocs/*" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3693
-      echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3694
-      echo "if [ -d /root/temphubzilla ]; then" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3695
-      echo "  rm -rf /root/temphubzilla" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3696
-      echo "fi" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3697
-      echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3698
-  fi
3699
-
3700
-  if grep -Fxq "install_owncloud" $COMPLETION_FILE; then
3701
-      BACKUP_INCLUDES_WEBSITES="yes"
3702
-      echo "restore_database_from_friend owncloud $OWNCLOUD_DOMAIN_NAME" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3703
-      RESTORE_SUBDIR='var'
3704
-      if [[ $BACKUP_TYPE != 'obnam' ]]; then
3705
-          RESTORE_SUBDIR='remoterestore/backup/owncloud'
3706
-      fi
3707
-      echo 'if [ -d $SERVER_DIRECTORY/backup/owncloud ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3708
-      echo '  echo "Restoring Owncloud installation"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3709
-      echo "  cp -r /root/tempowncloud/${RESTORE_SUBDIR}/lib/owncloud/* /var/lib/owncloud/" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3710
-      echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3711
-      echo '    exit 981' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3712
-      echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3713
-      echo 'restore_directory_from_friend /root/tempowncloud2 owncloud2' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3714
-      RESTORE_SUBDIR='etc'
3715
-      if [[ $BACKUP_TYPE != 'obnam' ]]; then
3716
-          RESTORE_SUBDIR='remoterestore/backup/owncloud2'
3717
-      fi
3718
-      echo "  cp -r /root/tempowncloud2/${RESTORE_SUBDIR}/owncloud/* /etc/owncloud/" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3719
-      echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3720
-      echo '    exit 982' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3721
-      echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3722
-      echo '  rm -rf /root/tempowncloud' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3723
-      echo '  rm -rf /root/tempowncloud2' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3724
-      echo '  chown -R www-data:www-data /var/lib/owncloud/data' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3725
-      echo '  chown -R www-data:www-data /var/lib/owncloud/backup' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3726
-      echo '  chown -R www-data:www-data /var/lib/owncloud/assets' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3727
-      echo '  for d in /home/*/ ; do' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3728
-      echo '    USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $3}'"'"')' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3729
-      echo '    if [[ $USERNAME != "git" ]]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3730
-      echo '      occ files:scan $USERNAME' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3731
-      echo '    fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3732
-      echo '  done' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3733
-      echo "  ln -s /usr/share/owncloud /var/www/$OWNCLOUD_DOMAIN_NAME/htdocs" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3734
-      echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3735
-      echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3736
-  fi
3737
-
3738
-  if grep -Fxq "install_gogs" $COMPLETION_FILE; then
3739
-      BACKUP_INCLUDES_WEBSITES="yes"
3740
-      echo "restore_database_from_friend gogs $GIT_DOMAIN_NAME" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3741
-      RESTORE_SUBDIR='home'
3742
-      if [[ $BACKUP_TYPE != 'obnam' ]]; then
3743
-          RESTORE_SUBDIR='remoterestore/backup/gogs'
3744
-      fi
3745
-      echo 'if [ -d $SERVER_DIRECTORY/backup/gogs ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3746
-      echo '  if [ ! -d /home/git/go/src/github.com/gogits/gogs/custom ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3747
-      echo '    mkdir -p /home/git/go/src/github.com/gogits/gogs/custom' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3748
-      echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3749
-      echo "  cp -r /root/tempgogs/${RESTORE_SUBDIR}/git/go/src/github.com/gogits/gogs/custom/* /home/git/go/src/github.com/gogits/gogs/custom/" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3750
-      echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3751
-      echo '    exit 5885' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3752
-      echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3753
-      echo '  echo "Restoring Gogs repos"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3754
-      echo '  restore_directory_from_friend /root/tempgogsrepos gogsrepos' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3755
-      RESTORE_SUBDIR='home'
3756
-      if [[ $BACKUP_TYPE != 'obnam' ]]; then
3757
-          RESTORE_SUBDIR='remoterestore/backup/gogsrepos'
3758
-      fi
3759
-      echo "  cp -r /root/tempgogsrepos/${RESTORE_SUBDIR}/git/gogs-repositories/* /home/git/gogs-repositories/" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3760
-      echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3761
-      echo '    exit 7649' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3762
-      echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3763
-      echo '  echo "Restoring Gogs authorized_keys"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3764
-      echo '  restore_directory_from_friend /root/tempgogsssh gogsssh' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3765
-      echo '  if [ ! -d /home/git/.ssh ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3766
-      echo '    mkdir /home/git/.ssh' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3767
-      echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3768
-      RESTORE_SUBDIR='home'
3769
-      if [[ $BACKUP_TYPE != 'obnam' ]]; then
3770
-          RESTORE_SUBDIR='remoterestore/backup/gogsssh'
3771
-      fi
3772
-      echo "  cp -r /root/tempgogsssh/${RESTORE_SUBDIR}/git/.ssh/* /home/git/.ssh/" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3773
-      echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3774
-      echo '    exit 74239' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3775
-      echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3776
-      echo '  rm -rf /root/tempgogs' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3777
-      echo '  rm -rf /root/tempgogsrepos' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3778
-      echo '  rm -rf /root/tempgogsssh' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3779
-      echo '  chown -R git:git /home/git' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3780
-      echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3781
-      echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3782
-  fi
3783
-
3784
-  RESTORE_SUBDIR='var'
3785
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3786
-      RESTORE_SUBDIR='remoterestore/backup/wiki'
3787
-  fi
3788
-  echo 'if [ -d $SERVER_DIRECTORY/backup/wiki ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3789
-  echo '  echo "Restoring Wiki installation"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3790
-  echo '  restore_directory_from_friend /root/tempwiki wiki' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3791
-  echo "  cp -r /root/tempwiki/${RESTORE_SUBDIR}/lib/dokuwiki/* /var/lib/dokuwiki/" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3792
-  echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3793
-  echo '    exit 868' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3794
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3795
-  echo '  restore_directory_from_friend /root/tempwiki2 wiki2' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3796
-  RESTORE_SUBDIR='etc'
3797
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3798
-      RESTORE_SUBDIR='remoterestore/backup/wiki2'
3799
-  fi
3800
-  echo "  cp -r /root/tempwiki2/${RESTORE_SUBDIR}/dokuwiki/* /etc/dokuwiki/" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3801
-  echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3802
-  echo '    exit 869' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3803
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3804
-  echo '  rm -rf /root/tempwiki' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3805
-  echo '  rm -rf /root/tempwiki2' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3806
-  echo '  chown -R www-data:www-data /var/lib/dokuwiki/*' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3807
-  echo '  # Ensure that the bundled SSL cert is being used' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3808
-  echo "  if [ -f /etc/ssl/certs/$WIKI_DOMAIN_NAME.bundle.crt ]; then" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3809
-  echo "    sed -i 's|$WIKI_DOMAIN_NAME.crt|$WIKI_DOMAIN_NAME.bundle.crt|g' /etc/nginx/sites-available/$WIKI_DOMAIN_NAME" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3810
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3811
-  echo "  if [ -d /etc/letsencrypt/live/${WIKI_DOMAIN_NAME} ]; then" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3812
-  echo "      ln -s /etc/letsencrypt/live/${WIKI_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${WIKI_DOMAIN_NAME}.key" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3813
-  echo "      ln -s /etc/letsencrypt/live/${WIKI_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${WIKI_DOMAIN_NAME}.pem" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3814
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3815
-  echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3816
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3817
-
3818
-  RESTORE_SUBDIR='var'
3819
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3820
-      RESTORE_SUBDIR='remoterestore/backup/blog'
3821
-  fi
3822
-  echo 'if [ -d $SERVER_DIRECTORY/backup/blog ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3823
-  echo '  echo "Restoring blog installation"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3824
-  echo '  mkdir /root/tempblog' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3825
-  echo '  restore_directory_from_friend /root/tempblog blog' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3826
-  echo "  rm -rf /var/www/$FULLBLOG_DOMAIN_NAME/htdocs" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3827
-  echo "  cp -r /root/tempblog/${RESTORE_SUBDIR}/www/$FULLBLOG_DOMAIN_NAME/htdocs /var/www/$FULLBLOG_DOMAIN_NAME/" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3828
-  echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3829
-  echo '    exit 593' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3830
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3831
-  echo '  rm -rf /root/tempblog' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3832
-  echo "  if [ ! -d /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/content ]; then" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3833
-  echo '    echo "No content directory found after restoring blog"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3834
-  echo '    exit 287' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3835
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3836
-  echo '  # Ensure that the bundled SSL cert is being used' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3837
-  echo "  if [ -f /etc/ssl/certs/$FULLBLOG_DOMAIN_NAME.bundle.crt ]; then" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3838
-  echo "    sed -i 's|$FULLBLOG_DOMAIN_NAME.crt|$FULLBLOG_DOMAIN_NAME.bundle.crt|g' /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3839
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3840
-
3841
-  echo '  for d in /home/*/ ; do' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3842
-  echo '    USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $3}'"'"')' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3843
-  echo '    if [[ $USERNAME != "git" ]]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3844
-
3845
-  echo -n "      if [ -d /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/content" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3846
-  echo '/$USERNAME/blog/uncategorized/post ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3847
-  echo -n "      mv /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/content" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3848
-  echo -n '/$USERNAME/blog/*.md ' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3849
-  echo -n "/var/www/$FULLBLOG_DOMAIN_NAME/htdocs/content" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3850
-  echo '/$USERNAME/blog/uncategorized/post ' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3851
-  echo '    fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3852
-  echo '  done' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3853
-  echo "  if [ -d /etc/letsencrypt/live/${FULLBLOG_DOMAIN_NAME} ]; then" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3854
-  echo "      ln -s /etc/letsencrypt/live/${FULLBLOG_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${FULLBLOG_DOMAIN_NAME}.key" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3855
-  echo "      ln -s /etc/letsencrypt/live/${FULLBLOG_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${FULLBLOG_DOMAIN_NAME}.pem" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3856
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3857
-  echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3858
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3859
-
3860
-  RESTORE_SUBDIR='etc'
3861
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3862
-      RESTORE_SUBDIR='remoterestore/backup/cjdns'
3863
-  fi
3864
-  echo 'if [ -d $SERVER_DIRECTORY/backup/cjdns ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3865
-  echo '  echo "Restoring cjdns installation"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3866
-  echo '  restore_directory_from_friend /root/tempcjdns cjdns' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3867
-  echo "  rm -rf /etc/cjdns" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3868
-  echo "  cp -r /root/tempcjdns/${RESTORE_SUBDIR}/cjdns /etc/" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3869
-  echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3870
-  echo '    exit 7438' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3871
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3872
-  echo '  rm -rf /root/tempcjdns' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3873
-  echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3874
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3875
-
3876
-  RESTORE_SUBDIR='home'
3877
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3878
-      RESTORE_SUBDIR='remoterestore/backup/voip'
3879
-  fi
3880
-  echo 'if [ -d $SERVER_DIRECTORY/backup/voip ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3881
-  echo '  echo "Restoring VoIP settings"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3882
-  echo '  restore_directory_from_friend /root/tempvoip voip' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3883
-  echo -n "  cp -f /root/tempvoip/${RESTORE_SUBDIR}" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3884
-  echo -n '/$MY_USERNAME/tempbackup/' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3885
-  echo "$VOIP_CONFIG_FILE /etc/" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3886
-  echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3887
-  echo '    rm -rf /root/tempvoip' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3888
-  echo '    exit 7823' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3889
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3890
-  echo -n "  cp -f /root/tempvoip/${RESTORE_SUBDIR}" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3891
-  echo -n '/$MY_USERNAME/tempbackup/' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3892
-  echo 'sipwitch.conf /etc/sipwitch.conf' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3893
-  echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3894
-  echo '    rm -rf /root/tempvoip' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3895
-  echo '    exit 7823' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3896
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3897
-  echo -n "  cp -f /root/tempvoip/${RESTORE_SUBDIR}/" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3898
-  echo -n '$MY_USERNAME/tempbackup/' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3899
-  echo "$VOIP_DATABASE /var/lib/mumble-server/" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3900
-  echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3901
-  echo '    rm -rf /root/tempvoip' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3902
-  echo '    exit 276' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3903
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3904
-  echo '  rm -rf /root/tempvoip' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3905
-  echo '  cp /etc/ssl/certs/mumble* /var/lib/mumble-server' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3906
-  echo '  cp /etc/ssl/private/mumble* /var/lib/mumble-server' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3907
-  echo '  chown -R mumble-server:mumble-server /var/lib/mumble-server' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3908
-  echo '  service sipwitch restart' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3909
-  echo '  service mumble-server restart' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3910
-  echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3911
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3912
-
3913
-  echo 'if [ -d $SERVER_DIRECTORY/backup/tox ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3914
-  echo '  echo "Restoring Tox node settings"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3915
-  echo '  restore_directory_from_friend / tox' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3916
-  echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3917
-  echo '    exit 93653' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3918
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3919
-  echo '  cp /var/lib/tox-bootstrapd/tox-bootstrapd.conf /etc/tox-bootstrapd.conf' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3920
-  echo '  systemctl restart tox-bootstrapd.service' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3921
-  echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3922
-  echo '    systemctl status tox-bootstrapd.service' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3923
-  echo '    exit 59369' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3924
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3925
-  echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3926
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3927
-
3928
-  RESTORE_SUBDIR='root'
3929
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3930
-      RESTORE_SUBDIR='remoterestore/backup/mail'
3931
-  fi
3932
-  echo 'for d in $SERVER_DIRECTORY/backup/mail/*/ ; do' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3933
-  echo '  USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $6}'"'"')' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3934
-  echo '  if [[ $USERNAME != "git" ]]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3935
-  echo '    if [ -d $SERVER_DIRECTORY/backup/mail/$USERNAME ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3936
-  echo '      if [ ! -d /home/$USERNAME ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3937
-  echo '          freedombone-adduser $USERNAME' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3938
-  echo '      fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3939
-  echo '      echo "Restoring emails for $USERNAME"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3940
-  echo '      restore_directory_from_friend /root/tempmail mail/$USERNAME' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3941
-  echo '      if [ ! -d /home/$USERNAME/Maildir ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3942
-  echo '        mkdir /home/$USERNAME/Maildir' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3943
-  echo '      fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3944
-  echo -n "      tar -xzvf /root/tempmail/${RESTORE_SUBDIR}/tempbackupemail/" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3945
-  echo '$USERNAME/maildir.tar.gz -C /' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3946
-  echo '      if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3947
-  echo '        exit 927' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3948
-  echo '      fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3949
-  echo '      rm -rf /root/tempmail' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3950
-  echo '    fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3951
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3952
-  echo 'done' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3953
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3954
-
3955
-  RESTORE_SUBDIR='var'
3956
-  if [[ $BACKUP_TYPE != 'obnam' ]]; then
3957
-      RESTORE_SUBDIR='remoterestore/backup/dlna'
3958
-  fi
3959
-  echo "if [ -d /var/cache/minidlna ]; then" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3960
-  echo '  if [ -d $SERVER_DIRECTORY/backup/dlna ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3961
-  echo '    echo "Restoring DLNA cache"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3962
-  echo '    restore_directory_from_friend /root/tempdlna dlna' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3963
-  echo "    cp -r /root/tempdlna/${RESTORE_SUBDIR}/cache/minidlna/* /var/cache/minidlna/" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3964
-  echo '    if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3965
-  echo '      exit 982' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3966
-  echo '    fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3967
-  echo '    rm -rf /root/tempdlna' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3968
-  echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3969
-  echo 'fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3970
-
3971
-  if [[ $ENABLE_SOCIAL_KEY_MANAGEMENT == "yes" ]]; then
3972
-      echo '' >> /usr/bin/$RESTORE_FROM_FRIENDS_SCRIPT_NAME
3973
-      echo 'for d in /home/*/ ; do' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3974
-      echo '  USERNAME=$(echo "$d" | awk -F '"'"'/'"'"' '"'"'{print $3}'"'"')' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3975
-      echo '  if [[ $USERNAME != "git" ]]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3976
-      echo '    # Retrieve key fragments for $USERNAME' >> /usr/bin/$RESTORE_FROM_FRIENDS_SCRIPT_NAME
3977
-      echo -n '    /usr/bin/sshpass -p $REMOTE_PASSWORD ' >> /usr/bin/$RESTORE_FROM_FRIENDS_SCRIPT_NAME
3978
-      echo -n "scp -r -P $REMOTE_SSH_PORT $REMOTE_SERVER/.gnupg_fragments_$USERNAME " >> /usr/bin/$RESTORE_FROM_FRIENDS_SCRIPT_NAME
3979
-      echo '/home/$USERNAME/' >> /usr/bin/$RESTORE_FROM_FRIENDS_SCRIPT_NAME
3980
-      echo '    if [ -d /home/$USERNAME/.gnupg_fragments_$USERNAME ]; then' >> /usr/bin/$RESTORE_FROM_FRIENDS_SCRIPT_NAME
3981
-      echo '      if [ -d /home/$USERNAME/.gnupg_fragments ]; then' >> /usr/bin/$RESTORE_FROM_FRIENDS_SCRIPT_NAME
3982
-      echo '        cp /home/$USERNAME/.gnupg_fragments_$USERNAME/* /home/$USERNAME/.gnupg_fragments' >> /usr/bin/$RESTORE_FROM_FRIENDS_SCRIPT_NAME
3983
-      echo '        rm -rf /home/$USERNAME/.gnupg_fragments_$USERNAME' >> /usr/bin/$RESTORE_FROM_FRIENDS_SCRIPT_NAME
3984
-      echo '      else' >> /usr/bin/$RESTORE_FROM_FRIENDS_SCRIPT_NAME
3985
-      echo '        mv /home/$USERNAME/.gnupg_fragments_$USERNAME /home/$USERNAME/.gnupg_fragments' >> /usr/bin/$RESTORE_FROM_FRIENDS_SCRIPT_NAME
3986
-      echo '      fi' >> /usr/bin/$RESTORE_FROM_FRIENDS_SCRIPT_NAME
3987
-      echo '    fi' >> /usr/bin/$RESTORE_FROM_FRIENDS_SCRIPT_NAME
3988
-      echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIENDS_SCRIPT_NAME
3989
-      echo 'done' >> /usr/bin/$RESTORE_FROM_FRIENDS_SCRIPT_NAME
3990
-  fi
3991
-
3992
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3993
-  echo 'echo "*** Remote restore was successful ***"' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3994
-  echo '' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3995
-  echo 'exit 0' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3996
-
3997
-  chmod 400 /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3998
-  chmod +x /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
3999
-
4000
-  echo 'restore_from_friend' >> $COMPLETION_FILE
4001
-}
4002
-
4003 3053
 function remove_default_user {
4004 3054
   # make sure you don't use the default user account
4005 3055
   if [[ $MY_USERNAME == "debian" ]]; then
@@ -10147,7 +9197,6 @@ install_mediagoblin
10147 9197
 repair_databases_script
10148 9198
 create_restore_hubzilla_script
10149 9199
 backup_to_friends_servers
10150
-restore_from_friend
10151 9200
 intrusion_detection
10152 9201
 install_final
10153 9202
 echo 'Freedombone installation is complete'

+ 646
- 0
src/freedombone-restore-remote Ver arquivo

@@ -0,0 +1,646 @@
1
+#!/bin/bash
2
+#
3
+# .---.                  .              .
4
+# |                      |              |
5
+# |--- .--. .-.  .-.  .-.|  .-. .--.--. |.-.  .-. .--.  .-.
6
+# |    |   (.-' (.-' (   | (   )|  |  | |   )(   )|  | (.-'
7
+# '    '     --'  --'  -' -  -' '  '   -' -'   -' '   -  --'
8
+#
9
+#                    Freedom in the Cloud
10
+#
11
+# Restore from a given remote server
12
+
13
+# License
14
+# =======
15
+#
16
+# Copyright (C) 2015 Bob Mottram <bob@robotics.uk.to>
17
+#
18
+# This program is free software: you can redistribute it and/or modify
19
+# it under the terms of the GNU General Public License as published by
20
+# the Free Software Foundation, either version 3 of the License, or
21
+# (at your option) any later version.
22
+#
23
+# This program is distributed in the hope that it will be useful,
24
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
25
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26
+# GNU General Public License for more details.
27
+#
28
+# You should have received a copy of the GNU General Public License
29
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
30
+
31
+PROJECT_NAME='freedombone'
32
+COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
33
+
34
+export TEXTDOMAIN=${PROJECT_NAME}-restore-local
35
+export TEXTDOMAINDIR="/usr/share/locale"
36
+
37
+SERVER_NAME=$1
38
+
39
+ADMIN_USERNAME=$(cat $COMPLETION_FILE | grep "Admin user" | -nawk -F ':' '{print $2}')
40
+ADMIN_EMAIL_ADDRESS=${ADMIN_USERNAME}@${HOSTNAME}
41
+
42
+# Temporary location for data to be backed up to other servers
43
+SERVER_DIRECTORY=/root/remoterestore
44
+
45
+if [ ! $SERVER_NAME ]; then
46
+    echo $'restorefromfriend [server]'
47
+    exit 1
48
+fi
49
+
50
+if [ ! -f /home/${ADMIN_USERNAME}/backup.list ]; then
51
+    echo $"No friends list found at /home/${ADMIN_USERNAME}/backup.list"
52
+    exit 2
53
+fi
54
+
55
+if ! grep -q "$SERVER_NAME" /home/${ADMIN_USERNAME}/backup.list; then
56
+    echo $"Server not found within the friends list"
57
+    exit 3
58
+fi
59
+
60
+REMOTE_SERVER=$(grep -i "$SERVER_NAME" /home/${ADMIN_USERNAME}/backup.list | awk -F ' ' '{print $1}')
61
+REMOTE_SSH_PORT=$(grep -i "$SERVER_NAME" /home/${ADMIN_USERNAME}/backup.list | awk -F ' ' '{print $2}')
62
+REMOTE_PASSWORD=$(grep -i "$SERVER_NAME" /home/${ADMIN_USERNAME}/backup.list | awk -F ' ' '{print $3}')
63
+
64
+# Check that a backup key exists
65
+if [ ! -f /etc/ssl/private/backup.key ]; then
66
+    echo $'No backup key was found in /etc/ssl/private/backup.key'
67
+    exit 84
68
+fi
69
+
70
+NOW=$(date +"%Y-%m-%d %H:%M:%S")
71
+
72
+echo "$NOW Starting restore from $REMOTE_SERVER" >> /var/log/remotebackups.log
73
+rsync -ratlzv --rsh="/usr/bin/sshpass -p $REMOTE_PASSWORD ssh -p $REMOTE_SSH_PORT -o StrictHostKeyChecking=no" $REMOTE_SERVER/backup $SERVER_DIRECTORY
74
+if [ ! "$?" = "0" ]; then
75
+    echo "$NOW Restore from $REMOTE_SERVER failed" >> /var/log/remotebackups.log
76
+    # Send a warning email
77
+    echo "Restore from $REMOTE_SERVER failed" | mail -s "${PROJECT_NAME} restore from friend" $ADMIN_EMAIL_ADDRESS
78
+    exit 790
79
+else
80
+    echo "$NOW Restored encrypted data from $REMOTE_SERVER" >> /var/log/remotebackups.log
81
+fi
82
+
83
+# MariaDB password
84
+DATABASE_PASSWORD=$(cat /root/dbpass)
85
+
86
+function restore_directory_from_friend {
87
+    if [ ! -d ${1} ]; then
88
+        mkdir ${1}
89
+    fi
90
+    obnam restore -r $SERVER_DIRECTORY/backup/${2} --to ${1}
91
+}
92
+
93
+function restore_database_from_friend {
94
+    DATABASE_PASSWORD=
95
+    RESTORE_SUBDIR="root"
96
+
97
+    if [ -d $SERVER_DIRECTORY/backup/${1} ]; then
98
+        echo $"Restoring ${1} database"
99
+        restore_directory_from_friend /root/temp${1}data ${1}data
100
+        if [ ! -f /root/temp${1}data/${RESTORE_SUBDIR}/temp${1}data/${1}.sql ]; then
101
+            echo $"Unable to restore ${1} database"
102
+            rm -rf /root/temp${1}data
103
+            exit 503
104
+        fi
105
+        mysqlsuccess=$(mysql -u root --password="$DATABASE_PASSWORD" ${1} -o < /root/temp${1}data/${RESTORE_SUBDIR}/temp${1}data/${1}.sql)
106
+        if [ ! "$?" = "0" ]; then
107
+            echo "$mysqlsuccess"
108
+            exit 964
109
+        fi
110
+        shred -zu /root/temp${1}data/${RESTORE_SUBDIR}/temp${1}data/*
111
+        rm -rf /root/temp${1}data
112
+        echo $"Restoring ${1} installation"
113
+        restore_directory_from_friend /root/temp${1} ${1}
114
+        RESTORE_SUBDIR="var"
115
+        if [ ${1} ]; then
116
+            if [ -d /var/www/${2}/htdocs ]; then
117
+                if [ -d /root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs ]; then
118
+                    rm -rf /var/www/${2}/htdocs
119
+                    mv /root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs /var/www/${2}/
120
+                    if [ ! "$?" = "0" ]; then
121
+                        exit 683
122
+                    fi
123
+                    if [ -d /etc/letsencrypt/live/${2} ]; then
124
+                        ln -s /etc/letsencrypt/live/${2}/privkey.pem /etc/ssl/private/${2}.key
125
+                        ln -s /etc/letsencrypt/live/${2}/fullchain.pem /etc/ssl/certs/${2}.pem
126
+                    else
127
+                        # Ensure that the bundled SSL cert is being used
128
+                        if [ -f /etc/ssl/certs/${2}.bundle.crt ]; then
129
+                            sed -i "s|${2}.crt|${2}.bundle.crt|g" /etc/nginx/sites-available/${2}
130
+                        fi
131
+                    fi
132
+                fi
133
+            fi
134
+        fi
135
+    fi
136
+}
137
+
138
+# Restore MariaDB
139
+if [ -d $SERVER_DIRECTORY/backup/mariadb ]; then
140
+    echo $"Restoring MariaDB settings"
141
+    restore_directory_from_friend /root/tempmariadb mariadb
142
+    echo $"Get the MariaDB password from the backup"
143
+    if [ ! -f /root/tempmariadb/root/tempmariadb/db ]; then
144
+        echo $"MariaDB password file not found"
145
+        exit 495
146
+    fi
147
+    BACKUP_MARIADB_PASSWORD=$(cat /root/tempmariadb/root/tempmariadb/db)
148
+    if [[ "$BACKUP_MARIADB_PASSWORD" != "$DATABASE_PASSWORD" ]]; then
149
+        echo $"Restore the MariaDB user table"
150
+        mysqlsuccess=$(mysql -u root --password="$DATABASE_PASSWORD" mysql -o < /root/tempmariadb/root/tempmariadb/mysql.sql)
151
+        if [ ! "$?" = "0" ]; then
152
+            echo $"Try again using the password obtained from backup"
153
+            mysqlsuccess=$(mysql -u root --password="$BACKUP_MARIADB_PASSWORD" mysql -o < /root/tempmariadb/root/tempmariadb/mysql.sql)
154
+        fi
155
+        if [ ! "$?" = "0" ]; then
156
+            echo "$mysqlsuccess"
157
+            exit 962
158
+        fi
159
+        echo $"Restarting database"
160
+        service mysql restart
161
+        echo $"Change the MariaDB password to the backup version"
162
+        DATABASE_PASSWORD=$BACKUP_MARIADB_PASSWORD
163
+    fi
164
+    shred -zu /root/tempmariadb/root/tempmariadb/db
165
+    rm -rf /root/tempmariadb
166
+
167
+    # Change database password file
168
+    echo "$DATABASE_PASSWORD" > /root/dbpass
169
+    chmod 600 /root/dbpass
170
+fi
171
+
172
+# restore Let's Encrypt
173
+if [ -d $SERVER_DIRECTORY/backup/letsencrypt ]; then
174
+    echo $"Restoring Lets Encrypt settings"
175
+    restore_directory_from_friend / letsencrypt
176
+fi
177
+
178
+# restore mutt settings
179
+for d in $SERVER_DIRECTORY/backup/mutt/*/ ; do
180
+    USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
181
+    if [[ $USERNAME != "git" ]]; then
182
+        if [ -d $SERVER_DIRECTORY/backup/mutt/$USERNAME ]; then
183
+            if [ ! -d /home/$USERNAME ]; then
184
+                ${PROJECT_NAME}-adduser $USERNAME
185
+            fi
186
+            echo $"Restoring Mutt settings for $USERNAME"
187
+            restore_directory_from_friend /root/tempmutt mutt/$USERNAME
188
+            if [ -f /root/tempmutt/home/$USERNAME/tempbackup/.muttrc ]; then
189
+                cp -f /root/tempmutt/home/$USERNAME/tempbackup/.muttrc /home/$USERNAME/.muttrc
190
+            fi
191
+            if [ -f /root/tempmutt/home/$USERNAME/tempbackup/Muttrc ]; then
192
+                cp -f /root/tempmutt/home/$USERNAME/tempbackup/Muttrc /etc/Muttrc
193
+            fi
194
+            if [ ! "$?" = "0" ]; then
195
+                rm -rf /root/tempmutt
196
+                exit 276
197
+            fi
198
+            rm -rf /root/tempmutt
199
+        fi
200
+    fi
201
+done
202
+
203
+# restore user gpg keys
204
+for d in $SERVER_DIRECTORY/backup/gnupg/*/ ; do
205
+    USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
206
+    if [[ $USERNAME != "git" ]]; then
207
+        if [ -d $SERVER_DIRECTORY/backup/gnupg/$USERNAME ]; then
208
+            if [ ! -d /home/$USERNAME ]; then
209
+                ${PROJECT_NAME}-adduser $USERNAME
210
+            fi
211
+            echo $"Restoring gnupg settings for $USERNAME"
212
+            restore_directory_from_friend /root/tempgnupg gnupg/$USERNAME
213
+            cp -r /root/tempgnupg/home/$USERNAME/.gnupg /home/$USERNAME/
214
+            if [ ! "$?" = "0" ]; then
215
+                rm -rf /root/tempgnupg
216
+                exit 276
217
+            fi
218
+            rm -rf /root/tempgnupg
219
+            if [[ "$USERNAME" == "$ADMIN_USERNAME" ]]; then
220
+                cp -r /home/$USERNAME/.gnupg /root
221
+                if [ ! "$?" = "0" ]; then
222
+                    exit 283
223
+                fi
224
+            fi
225
+        fi
226
+    fi
227
+done
228
+
229
+# restore user procmail
230
+for d in $SERVER_DIRECTORY/backup/procmail/*/ ; do
231
+    USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
232
+    if [[ $USERNAME != "git" ]]; then
233
+        if [ -d $SERVER_DIRECTORY/backup/procmail/$USERNAME ]; then
234
+            if [ ! -d /home/$USERNAME ]; then
235
+                ${PROJECT_NAME}-adduser $USERNAME
236
+            fi
237
+            echo $"Restoring procmail settings for $USERNAME"
238
+            restore_directory_from_friend /root/tempprocmail procmail/$USERNAME
239
+            cp -f /root/tempprocmail/home/$USERNAME/tempbackup/.procmailrc /home/$USERNAME/
240
+            if [ ! "$?" = "0" ]; then
241
+                rm -rf /root/tempprocmail
242
+                exit 276
243
+            fi
244
+            rm -rf /root/tempprocmail
245
+        fi
246
+    fi
247
+done
248
+
249
+# Restore user spam settings
250
+for d in $SERVER_DIRECTORY/backup/spamassassin/*/ ; do
251
+    USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
252
+    if [[ $USERNAME != "git" ]]; then
253
+        if [ -d $SERVER_DIRECTORY/backup/spamassassin/$USERNAME ]; then
254
+            if [ ! -d /home/$USERNAME ]; then
255
+                ${PROJECT_NAME}-adduser $USERNAME
256
+            fi
257
+            echo $"Restoring spamassassin settings for $USERNAME"
258
+            restore_directory_from_friend /root/tempspamassassin spamassassin/$USERNAME
259
+            cp -rf /root/tempspamassassin/home/$USERNAME/.spamassassin /home/$USERNAME/
260
+            if [ ! "$?" = "0" ]; then
261
+                rm -rf /root/tempspamassassin
262
+                exit 276
263
+            fi
264
+            rm -rf /root/tempspamassassin
265
+        fi
266
+    fi
267
+done
268
+
269
+# Restore admin user README
270
+if [ -d $SERVER_DIRECTORY/backup/readme ]; then
271
+    echo $"Restoring README"
272
+    restore_directory_from_friend /root/tempreadme readme
273
+    cp -f /root/tempreadme/home/$ADMIN_USERNAME/tempbackup/README /home/$ADMIN_USERNAME/
274
+    if [ ! "$?" = "0" ]; then
275
+        rm -rf /root/tempreadme
276
+        exit 276
277
+    fi
278
+    rm -rf /root/tempreadme
279
+fi
280
+
281
+# restore IPFS
282
+if [ -d $SERVER_DIRECTORY/backup/ipfs ]; then
283
+    echo $"Restoring IPFS"
284
+    restore_directory_from_friend /root/tempipfs ipfs
285
+    cp -rf /root/tempipfs/home/$ADMIN_USERNAME/.ipfs/* /home/$ADMIN_USERNAME/.ipfs
286
+    if [ ! "$?" = "0" ]; then
287
+        rm -rf /root/tempipfs
288
+        exit 276
289
+    fi
290
+    rm -rf /root/tempipfs
291
+fi
292
+
293
+# restore user ssh keys
294
+for d in $SERVER_DIRECTORY/backup/ssh/*/ ; do
295
+    USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
296
+    if [[ $USERNAME != "git" ]]; then
297
+        if [ -d $SERVER_DIRECTORY/backup/ssh/$USERNAME ]; then
298
+            if [ ! -d /home/$USERNAME ]; then
299
+                ${PROJECT_NAME}-adduser $USERNAME
300
+            fi
301
+            echo $"Restoring ssh keys for $USERNAME"
302
+            restore_directory_from_friend /root/tempssh ssh/$USERNAME
303
+            cp -r /root/tempssh/home/$USERNAME/.ssh /home/$USERNAME/
304
+            if [ ! "$?" = "0" ]; then
305
+                rm -rf /root/tempssh
306
+                exit 664
307
+            fi
308
+            rm -rf /root/tempssh
309
+        fi
310
+    fi
311
+done
312
+
313
+# restore user config files
314
+for d in $SERVER_DIRECTORY/backup/config/*/ ; do
315
+    USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
316
+    if [[ $USERNAME != "git" ]]; then
317
+        if [ -d $SERVER_DIRECTORY/backup/config/$USERNAME ]; then
318
+            if [ ! -d /home/$USERNAME ]; then
319
+                ${PROJECT_NAME}-adduser $USERNAME
320
+            fi
321
+            echo $"Restoring config files for $USERNAME"
322
+            restore_directory_from_friend /root/tempconfig config/$USERNAME
323
+            cp -r /root/tempconfig/home/$USERNAME/.config /home/$USERNAME/
324
+            if [ ! "$?" = "0" ]; then
325
+                rm -rf /root/tempconfig
326
+                exit 664
327
+            fi
328
+            rm -rf /root/tempconfig
329
+        fi
330
+    fi
331
+done
332
+
333
+# restore certs
334
+if [ -d $SERVER_DIRECTORY/backup/ssl ]; then
335
+    echo $"Restoring certificates"
336
+    restore_directory_from_friend /root/tempssl ssl
337
+    cp -r /root/tempssl/etc/ssl/* /etc/ssl
338
+    if [ ! "$?" = "0" ]; then
339
+        exit 276
340
+    fi
341
+    rm -rf /root/tempssl
342
+fi
343
+
344
+# restore personal settings
345
+for d in $SERVER_DIRECTORY/backup/personal/*/ ; do
346
+    USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
347
+    if [[ $USERNAME != "git" ]]; then
348
+        if [ -d $SERVER_DIRECTORY/backup/personal/$USERNAME ]; then
349
+            if [ ! -d /home/$USERNAME ]; then
350
+                ${PROJECT_NAME}-adduser $USERNAME
351
+            fi
352
+            echo $"Restoring personal settings for $USERNAME"
353
+            restore_directory_from_friend /root/temppersonal personal/$USERNAME
354
+            if [ -d /home/$USERNAME/personal ]; then
355
+                rm -rf /home/$USERNAME/personal
356
+            fi
357
+            mv /root/temppersonal/home/$USERNAME/personal /home/$USERNAME
358
+            if [ ! "$?" = "0" ]; then
359
+                exit 184
360
+            fi
361
+            rm -rf /root/temppersonal
362
+        fi
363
+    fi
364
+done
365
+
366
+# restore mailing list
367
+if [ -d /var/spool/mlmmj ]; then
368
+    echo $"Restoring public mailing list"
369
+    restore_directory_from_friend /root/tempmailinglist mailinglist
370
+    cp -r /root/tempmailinglist/root/spool/mlmmj/* /var/spool/mlmmj
371
+    if [ ! "$?" = "0" ]; then
372
+        exit 526
373
+    fi
374
+    rm -rf /root/tempmailinglist
375
+fi
376
+
377
+# restore XMPP
378
+if [ -d /var/lib/prosody ]; then
379
+    echo $"Restoring XMPP settings"
380
+    restore_directory_from_friend /root/tempxmpp xmpp
381
+    cp -r /root/tempxmpp/var/lib/prosody/* /var/lib/prosody
382
+    if [ ! "$?" = "0" ]; then
383
+        exit 725
384
+    fi
385
+    rm -rf /root/tempxmpp
386
+    service prosody restart
387
+    chown -R prosody:prosody /var/lib/prosody/*
388
+fi
389
+
390
+# restore gnu social
391
+if grep -q "GNU Social domain" $COMPLETION_FILE; then
392
+    MICROBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "GNU Social domain" | awk -F ':' '{print $2}')
393
+    restore_database_from_friend gnusocial ${MICROBLOG_DOMAIN_NAME}
394
+    if [ -d /root/tempgnusocial ]; then
395
+        rm -rf /root/tempgnusocial
396
+    fi
397
+fi
398
+
399
+# restore hubzilla
400
+if grep -q "Hubzilla domain" $COMPLETION_FILE; then
401
+    HUBZILLA_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Hubzilla domain" | awk -F ':' '{print $2}')
402
+    restore_database_from_friend hubzilla ${HUBZILLA_DOMAIN_NAME}
403
+    if [ -d $SERVER_DIRECTORY/backup/hubzilla ]; then
404
+        if [ ! -d /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/store/[data]/smarty3 ]; then
405
+            mkdir -p /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/store/[data]/smarty3
406
+        fi
407
+        chmod 777 /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/store/[data]/smarty3
408
+        chown -R www-data:www-data /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/*
409
+    fi
410
+    if [ -d /root/temphubzilla ]; then
411
+        rm -rf /root/temphubzilla
412
+    fi
413
+fi
414
+
415
+# restore owncloud
416
+if grep -q "Owncloud domain" $COMPLETION_FILE; then
417
+    OWNCLOUD_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Owncloud domain" | awk -F ':' '{print $2}')
418
+    restore_database_from_friend owncloud $OWNCLOUD_DOMAIN_NAME
419
+    if [ -d $SERVER_DIRECTORY/backup/owncloud ]; then
420
+        echo $"Restoring Owncloud installation"
421
+        cp -r /root/tempowncloud/var/lib/owncloud/* /var/lib/owncloud/
422
+        if [ ! "$?" = "0" ]; then
423
+            exit 981
424
+        fi
425
+        restore_directory_from_friend /root/tempowncloud2 owncloud2
426
+        cp -r /root/tempowncloud2/etc/owncloud/* /etc/owncloud/
427
+        if [ ! "$?" = "0" ]; then
428
+            exit 982
429
+        fi
430
+        rm -rf /root/tempowncloud
431
+        rm -rf /root/tempowncloud2
432
+        chown -R www-data:www-data /var/lib/owncloud/data
433
+        chown -R www-data:www-data /var/lib/owncloud/backup
434
+        chown -R www-data:www-data /var/lib/owncloud/assets
435
+        for d in /home/*/ ; do
436
+            USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
437
+            if [[ $USERNAME != "git" ]]; then
438
+                occ files:scan $USERNAME
439
+            fi
440
+        done
441
+        ln -s /usr/share/owncloud /var/www/${OWNCLOUD_DOMAIN_NAME}/htdocs
442
+    fi
443
+fi
444
+
445
+# restore gogs
446
+if grep -q "Gogs domain" $COMPLETION_FILE; then
447
+    GIT_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Gogs domain" | awk -F ':' '{print $2}')
448
+    restore_database_from_friend gogs $GIT_DOMAIN_NAME
449
+    if [ -d $SERVER_DIRECTORY/backup/gogs ]; then
450
+        if [ ! -d /home/git/go/src/github.com/gogits/gogs/custom ]; then
451
+            mkdir -p /home/git/go/src/github.com/gogits/gogs/custom
452
+        fi
453
+        cp -r /root/tempgogs/home/git/go/src/github.com/gogits/gogs/custom/* /home/git/go/src/github.com/gogits/gogs/custom/
454
+        if [ ! "$?" = "0" ]; then
455
+            exit 5885
456
+        fi
457
+        echo $"Restoring Gogs repos"
458
+        restore_directory_from_friend /root/tempgogsrepos gogsrepos
459
+        cp -r /root/tempgogsrepos/home/git/gogs-repositories/* /home/git/gogs-repositories/
460
+        if [ ! "$?" = "0" ]; then
461
+            exit 7649
462
+        fi
463
+        echo $"Restoring Gogs authorized_keys"
464
+        restore_directory_from_friend /root/tempgogsssh gogsssh
465
+        if [ ! -d /home/git/.ssh ]; then
466
+            mkdir /home/git/.ssh
467
+        fi
468
+        cp -r /root/tempgogsssh/home/git/.ssh/* /home/git/.ssh/
469
+        if [ ! "$?" = "0" ]; then
470
+            exit 74239
471
+        fi
472
+        rm -rf /root/tempgogs
473
+        rm -rf /root/tempgogsrepos
474
+        rm -rf /root/tempgogsssh
475
+        chown -R git:git /home/git
476
+    fi
477
+fi
478
+
479
+if [ -d $SERVER_DIRECTORY/backup/wiki ]; then
480
+    WIKI_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Wiki domain" | awk -F ':' '{print $2}')
481
+    echo $"Restoring Wiki installation $WIKI_DOMAIN_NAME"
482
+    restore_directory_from_friend /root/tempwiki wiki
483
+    cp -r /root/tempwiki/var/lib/dokuwiki/* /var/lib/dokuwiki/
484
+    if [ ! "$?" = "0" ]; then
485
+        exit 868
486
+    fi
487
+    restore_directory_from_friend /root/tempwiki2 wiki2
488
+    cp -r /root/tempwiki2/etc/dokuwiki/* /etc/dokuwiki/
489
+    if [ ! "$?" = "0" ]; then
490
+        exit 869
491
+    fi
492
+    rm -rf /root/tempwiki
493
+    rm -rf /root/tempwiki2
494
+    chown -R www-data:www-data /var/lib/dokuwiki/*
495
+    # Ensure that the bundled SSL cert is being used
496
+    if [ -f /etc/ssl/certs/${WIKI_DOMAIN_NAME}.bundle.crt ]; then
497
+        sed -i "s|${WIKI_DOMAIN_NAME}.crt|${WIKI_DOMAIN_NAME}.bundle.crt|g" /etc/nginx/sites-available/${WIKI_DOMAIN_NAME}
498
+    fi
499
+    if [ -d /etc/letsencrypt/live/${WIKI_DOMAIN_NAME} ]; then
500
+        ln -s /etc/letsencrypt/live/${WIKI_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${WIKI_DOMAIN_NAME}.key
501
+        ln -s /etc/letsencrypt/live/${WIKI_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${WIKI_DOMAIN_NAME}.pem
502
+    fi
503
+fi
504
+
505
+# restore blog
506
+if [ -d $SERVER_DIRECTORY/backup/blog ]; then
507
+    FULLBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Blog domain" | awk -F ':' '{print $2}')
508
+    echo $"Restoring blog installation $FULLBLOG_DOMAIN_NAME"
509
+    mkdir /root/tempblog
510
+    restore_directory_from_friend /root/tempblog blog
511
+    rm -rf /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs
512
+    cp -r /root/tempblog/var/www/${FULLBLOG_DOMAIN_NAME}/htdocs /var/www/${FULLBLOG_DOMAIN_NAME}/
513
+    if [ ! "$?" = "0" ]; then
514
+        exit 593
515
+    fi
516
+    rm -rf /root/tempblog
517
+    if [ ! -d /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content ]; then
518
+        echo $"No content directory found after restoring blog"
519
+        exit 287
520
+    fi
521
+    # Ensure that the bundled SSL cert is being used
522
+    if [ -f /etc/ssl/certs/${FULLBLOG_DOMAIN_NAME}.bundle.crt ]; then
523
+        sed -i "s|${FULLBLOG_DOMAIN_NAME}.crt|${FULLBLOG_DOMAIN_NAME}.bundle.crt|g" /etc/nginx/sites-available/${FULLBLOG_DOMAIN_NAME}
524
+    fi
525
+    for d in /home/*/ ; do
526
+        USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
527
+        if [[ $USERNAME != "git" ]]; then
528
+            if [ -d /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/uncategorized/post ]; then
529
+                mv /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/*.md /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/content/$USERNAME/blog/uncategorized/post
530
+            fi
531
+    done
532
+    if [ -d /etc/letsencrypt/live/${FULLBLOG_DOMAIN_NAME} ]; then
533
+        ln -s /etc/letsencrypt/live/${FULLBLOG_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${FULLBLOG_DOMAIN_NAME}.key
534
+        ln -s /etc/letsencrypt/live/${FULLBLOG_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${FULLBLOG_DOMAIN_NAME}.pem
535
+    fi
536
+fi
537
+
538
+# restore cjdns
539
+if [ -d $SERVER_DIRECTORY/backup/cjdns ]; then
540
+    echo $"Restoring cjdns installation"
541
+    restore_directory_from_friend /root/tempcjdns cjdns
542
+    rm -rf /etc/cjdns
543
+    cp -r /root/tempcjdns/etc/cjdns /etc/
544
+    if [ ! "$?" = "0" ]; then
545
+        exit 7438
546
+    fi
547
+    rm -rf /root/tempcjdns
548
+fi
549
+
550
+# restore voip
551
+if [ -d $SERVER_DIRECTORY/backup/voip ]; then
552
+    echo $"Restoring VoIP settings"
553
+    restore_directory_from_friend /root/tempvoip voip
554
+    cp -f /root/tempvoip/home/$ADMIN_USERNAME/tempbackup/mumble-server.ini /etc/
555
+    if [ ! "$?" = "0" ]; then
556
+        rm -rf /root/tempvoip
557
+        exit 7823
558
+    fi
559
+    cp -f /root/tempvoip/home/$ADMIN_USERNAME/tempbackup/sipwitch.conf /etc/sipwitch.conf
560
+    if [ ! "$?" = "0" ]; then
561
+        rm -rf /root/tempvoip
562
+        exit 7823
563
+    fi
564
+    cp -f /root/tempvoip/home/$ADMIN_USERNAME/tempbackup/mumble-server.sqlite /var/lib/mumble-server/
565
+    if [ ! "$?" = "0" ]; then
566
+        rm -rf /root/tempvoip
567
+        exit 276
568
+    fi
569
+    rm -rf /root/tempvoip
570
+    cp /etc/ssl/certs/mumble* /var/lib/mumble-server
571
+    cp /etc/ssl/private/mumble* /var/lib/mumble-server
572
+    chown -R mumble-server:mumble-server /var/lib/mumble-server
573
+    service sipwitch restart
574
+    service mumble-server restart
575
+fi
576
+
577
+# Restore tox
578
+if [ -d $SERVER_DIRECTORY/backup/tox ]; then
579
+    echo $"Restoring Tox node settings"
580
+    restore_directory_from_friend / tox
581
+    if [ ! "$?" = "0" ]; then
582
+        exit 93653
583
+    fi
584
+    cp /var/lib/tox-bootstrapd/tox-bootstrapd.conf /etc/tox-bootstrapd.conf
585
+    systemctl restart tox-bootstrapd.service
586
+    if [ ! "$?" = "0" ]; then
587
+        systemctl status tox-bootstrapd.service
588
+        exit 59369
589
+    fi
590
+fi
591
+
592
+# restore email
593
+for d in $SERVER_DIRECTORY/backup/mail/*/ ; do
594
+    USERNAME=$(echo "$d" | awk -F '/' '{print $6}')
595
+    if [[ $USERNAME != "git" ]]; then
596
+        if [ -d $SERVER_DIRECTORY/backup/mail/$USERNAME ]; then
597
+            if [ ! -d /home/$USERNAME ]; then
598
+                ${PROJECT_NAME}-adduser $USERNAME
599
+            fi
600
+            echo $"Restoring emails for $USERNAME"
601
+            restore_directory_from_friend /root/tempmail mail/$USERNAME
602
+            if [ ! -d /home/$USERNAME/Maildir ]; then
603
+                mkdir /home/$USERNAME/Maildir
604
+            fi
605
+            tar -xzvf /root/tempmail/root/tempbackupemail/$USERNAME/maildir.tar.gz -C /
606
+            if [ ! "$?" = "0" ]; then
607
+                exit 927
608
+            fi
609
+            rm -rf /root/tempmail
610
+        fi
611
+    fi
612
+done
613
+
614
+# Restore DLNA
615
+if [ -d /var/cache/minidlna ]; then
616
+    if [ -d $SERVER_DIRECTORY/backup/dlna ]; then
617
+        echo $"Restoring DLNA cache"
618
+        restore_directory_from_friend /root/tempdlna dlna
619
+        cp -r /root/tempdlna/var/cache/minidlna/* /var/cache/minidlna/
620
+        if [ ! "$?" = "0" ]; then
621
+            exit 982
622
+        fi
623
+        rm -rf /root/tempdlna
624
+    fi
625
+fi
626
+
627
+# Social key management
628
+for d in /home/*/ ; do
629
+    USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
630
+    if [[ $USERNAME != "git" ]]; then
631
+        # Retrieve key fragments for $USERNAME
632
+        /usr/bin/sshpass -p "$REMOTE_PASSWORD" scp -r -P $REMOTE_SSH_PORT $REMOTE_SERVER/.gnupg_fragments_$USERNAME /home/$USERNAME/
633
+        if [ -d /home/$USERNAME/.gnupg_fragments_$USERNAME ]; then
634
+            if [ -d /home/$USERNAME/.gnupg_fragments ]; then
635
+                cp /home/$USERNAME/.gnupg_fragments_$USERNAME/* /home/$USERNAME/.gnupg_fragments
636
+                rm -rf /home/$USERNAME/.gnupg_fragments_$USERNAME
637
+            else
638
+                mv /home/$USERNAME/.gnupg_fragments_$USERNAME /home/$USERNAME/.gnupg_fragments
639
+            fi
640
+        fi
641
+    fi
642
+done
643
+
644
+echo $"*** Remote restore was successful ***"
645
+
646
+exit 0