瀏覽代碼

Restore script

Bob Mottram 10 年之前
父節點
當前提交
0f5b979862
共有 1 個文件被更改,包括 58 次插入63 次删除
  1. 58
    63
      install-freedombone.sh

+ 58
- 63
install-freedombone.sh 查看文件

@@ -162,9 +162,12 @@ USB_DRIVE=/dev/sda1
162 162
 # Location where the USB drive is mounted to
163 163
 USB_MOUNT=/media/usb
164 164
 
165
-# Name of a script used to create a backup of the system
165
+# Name of a script used to create a backup of the system on usb drive
166 166
 BACKUP_SCRIPT_NAME="backup"
167 167
 
168
+# Name of a script used to restore the system from usb drive
169
+RESTORE_SCRIPT_NAME="restore"
170
+
168 171
 # memory limit for php in MB
169 172
 MAX_PHP_MEMORY=32
170 173
 
@@ -3016,10 +3019,7 @@ function create_backup_script {
3016 3019
   fi
3017 3020
   # dynamic dns
3018 3021
   echo "  if [ -f /usr/bin/dynamicdns ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3019
-  echo "    if [ ! -d $USB_MOUNT/backup/dynamicdns ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3020
-  echo "        mkdir $USB_MOUNT/backup/dynamicdns" >> /usr/bin/$BACKUP_SCRIPT_NAME
3021
-  echo '    fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3022
-  echo "    obnam -r $USB_MOUNT/backup/dynamicdns /usr/bin/dynamicdns" >> /usr/bin/$BACKUP_SCRIPT_NAME
3022
+  echo "    cp -f /usr/bin/dynamicdns $USB_MOUNT/backup/dynamicdns" >> /usr/bin/$BACKUP_SCRIPT_NAME
3023 3023
   echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3024 3024
   # web server
3025 3025
   echo "  if [ -d /etc/nginx ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
@@ -3081,6 +3081,7 @@ function create_backup_script {
3081 3081
 	  echo "  obnam -r $USB_MOUNT/backup/dlna /var/cache/minidlna" >> /usr/bin/$BACKUP_SCRIPT_NAME
3082 3082
   fi
3083 3083
   echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3084
+  chmod 600 /usr/bin/$BACKUP_SCRIPT_NAME
3084 3085
   chmod +x /usr/bin/$BACKUP_SCRIPT_NAME
3085 3086
 
3086 3087
   echo 'create_backup_script' >> $COMPLETION_FILE
@@ -3091,94 +3092,87 @@ function create_restore_script {
3091 3092
       return
3092 3093
   fi
3093 3094
   apt-get -y --force-yes install obnam
3094
-  echo '#!/bin/bash' > /usr/bin/$BACKUP_SCRIPT_NAME
3095
-  echo "if [ -b $USB_DRIVE ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3096
-  echo "  if [ ! -d $USB_MOUNT ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3097
-  echo "    mkdir $USB_MOUNT" >> /usr/bin/$BACKUP_SCRIPT_NAME
3098
-  echo "    mount $USB_DRIVE $USB_MOUNT" >> /usr/bin/$BACKUP_SCRIPT_NAME
3099
-  echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3100
-  echo "  if [ ! -d $USB_MOUNT/backup ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3101
-  echo "    mkdir $USB_MOUNT/backup" >> /usr/bin/$BACKUP_SCRIPT_NAME
3102
-  echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3095
+  echo '#!/bin/bash' > /usr/bin/$RESTORE_SCRIPT_NAME
3096
+  echo "if [ -b $USB_DRIVE ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3097
+  echo "  if [ ! -d $USB_MOUNT ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3098
+  echo "    mkdir $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
3099
+  echo "    mount $USB_DRIVE $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
3100
+  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3101
+  echo "  if [ ! -d $USB_MOUNT/backup ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3102
+  echo "    mkdir $USB_MOUNT/backup" >> /usr/bin/$RESTORE_SCRIPT_NAME
3103
+  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3103 3104
   # email
3104 3105
   if ! [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" ]]; then
3105
-      echo "  if [ -d $USB_MOUNT/backup/Maildir ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3106
-      echo "    obnam restore --to /home/$MY_USERNAME/Maildir $USB_MOUNT/backup/Maildir" >> /usr/bin/$BACKUP_SCRIPT_NAME
3107
-      echo "    obnam restore --to /home/$MY_USERNAME/.gnupg $USB_MOUNT/backup/gpg" >> /usr/bin/$BACKUP_SCRIPT_NAME
3108
-	  echo "    cp -f $USB_MOUNT/backup/gpg/.muttrc /home/$MY_USERNAME" >> /usr/bin/$BACKUP_SCRIPT_NAME
3109
-	  echo "    cp -f $USB_MOUNT/backup/gpg/.procmailrc /home/$MY_USERNAME" >> /usr/bin/$BACKUP_SCRIPT_NAME
3110
-      echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3106
+      echo "  if [ -d $USB_MOUNT/backup/Maildir ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3107
+      echo "    obnam restore --to /home/$MY_USERNAME/Maildir $USB_MOUNT/backup/Maildir" >> /usr/bin/$RESTORE_SCRIPT_NAME
3108
+      echo "    obnam restore --to /home/$MY_USERNAME/.gnupg $USB_MOUNT/backup/gpg" >> /usr/bin/$RESTORE_SCRIPT_NAME
3109
+	  echo "    cp -f $USB_MOUNT/backup/gpg/.muttrc /home/$MY_USERNAME" >> /usr/bin/$RESTORE_SCRIPT_NAME
3110
+	  echo "    cp -f $USB_MOUNT/backup/gpg/.procmailrc /home/$MY_USERNAME" >> /usr/bin/$RESTORE_SCRIPT_NAME
3111
+      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3111 3112
   fi
3112 3113
   # dynamic dns
3113
-  echo "  if [ -f /usr/bin/dynamicdns ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3114
-  echo "    if [ ! -d $USB_MOUNT/backup/dynamicdns ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3115
-  echo "        mkdir $USB_MOUNT/backup/dynamicdns" >> /usr/bin/$BACKUP_SCRIPT_NAME
3116
-  echo '    fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3117
-  echo "    obnam -r $USB_MOUNT/backup/dynamicdns /usr/bin/dynamicdns" >> /usr/bin/$BACKUP_SCRIPT_NAME
3118
-  echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3114
+  echo "  if [ -f $USB_MOUNT/backup/dynamicdns ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3115
+  echo "    cp -f $USB_MOUNT/backup/dynamicdns /usr/bin/dynamicdns" >> /usr/bin/$RESTORE_SCRIPT_NAME
3116
+  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3119 3117
   # web server
3120
-  echo "  if [ -d /etc/nginx ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3121
-  echo "    if [ ! -d $USB_MOUNT/backup/webserver ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3122
-  echo "        mkdir $USB_MOUNT/backup/webserver" >> /usr/bin/$BACKUP_SCRIPT_NAME
3123
-  echo '    fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3124
-  echo "    obnam -r $USB_MOUNT/backup/webserver /etc/nginx/sites-available" >> /usr/bin/$BACKUP_SCRIPT_NAME
3125
-  echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3118
+  echo "  if [ -d /etc/nginx ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3119
+  echo "    if [ -d $USB_MOUNT/backup/webserver ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3120
+  echo "      obnam restore --to /etc/nginx $USB_MOUNT/backup/webserver" >> /usr/bin/$RESTORE_SCRIPT_NAME
3121
+  echo '    fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3122
+  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3126 3123
   # owncloud
3127 3124
   if ! [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" ]]; then
3128 3125
 	  if [ $OWNCLOUD_DOMAIN_NAME ]; then
3129
-		  echo "  if [ ! -d $USB_MOUNT/backup/owncloud ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3130
-		  echo "    mkdir $USB_MOUNT/backup/owncloud" >> /usr/bin/$BACKUP_SCRIPT_NAME
3131
-		  echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3132
-		  echo "  obnam -r $USB_MOUNT/backup/owncloud /var/www/$OWNCLOUD_DOMAIN_NAME" >> /usr/bin/$BACKUP_SCRIPT_NAME
3126
+		  echo "  if [ -d $USB_MOUNT/backup/owncloud ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3127
+		  echo "    obnam restore --to /var/www/$OWNCLOUD_DOMAIN_NAME $USB_MOUNT/backup/owncloud" >> /usr/bin/$RESTORE_SCRIPT_NAME
3128
+		  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3133 3129
 	  fi
3134 3130
   fi
3135 3131
   # prosody
3136
-  echo 'if [ -d /var/lib/prosody ]; then' >> /usr/bin/$BACKUP_SCRIPT_NAME
3137
-  echo "  if [ ! -d $USB_MOUNT/backup/prosody ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3138
-  echo "    mkdir $USB_MOUNT/backup/prosody" >> /usr/bin/$BACKUP_SCRIPT_NAME
3139
-  echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3140
-  echo "  obnam -r $USB_MOUNT/backup/prosody /var/lib/prosody" >> /usr/bin/$BACKUP_SCRIPT_NAME
3141
-  echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3132
+  echo 'if [ -d /var/lib/prosody ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
3133
+  echo "  if [ -d $USB_MOUNT/backup/prosody ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3134
+  echo "    obnam restore --to /var/lib/prosody $USB_MOUNT/backup/prosody" >> /usr/bin/$RESTORE_SCRIPT_NAME
3135
+  echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3136
+  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3142 3137
   # wiki / blog
3143 3138
   if ! [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" ]]; then
3144 3139
 	  if [ $WIKI_DOMAIN_NAME ]; then
3145
-          echo "  if [ ! -d $USB_MOUNT/backup/wiki-blog ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3146
-          echo "    mkdir $USB_MOUNT/backup/wiki-blog" >> /usr/bin/$BACKUP_SCRIPT_NAME
3147
-          echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3148
-	      echo "  obnam -r $USB_MOUNT/backup/wiki-blog /var/www/$WIKI_DOMAIN_NAME" >> /usr/bin/$BACKUP_SCRIPT_NAME
3140
+          echo "  if [ -d $USB_MOUNT/backup/wiki-blog ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3141
+		  echo "    obnam restore --to /var/www/$WIKI_DOMAIN_NAME $USB_MOUNT/backup/wiki-blog" >> /usr/bin/$RESTORE_SCRIPT_NAME
3142
+          echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3149 3143
 	  fi
3150 3144
   fi
3151 3145
   # microblog
3152 3146
   if ! [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MEDIA" ]]; then
3153 3147
 	  if [ $MICROBLOG_DOMAIN_NAME ]; then
3154
-          echo "  if [ ! -d $USB_MOUNT/backup/gnusocial ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3155
-          echo "    mkdir $USB_MOUNT/backup/gnusocial" >> /usr/bin/$BACKUP_SCRIPT_NAME
3156
-          echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3157
-	      echo "  obnam -r $USB_MOUNT/backup/gnusocial /var/www/$MICROBLOG_DOMAIN_NAME" >> /usr/bin/$BACKUP_SCRIPT_NAME
3158
-		  echo "  mysqldump --password=$MARIADB_PASSWORD gnusocial > $USB_MOUNT/backup/gnusocial/database.sql" >> /usr/bin/$BACKUP_SCRIPT_NAME
3148
+          echo "  if [ -d $USB_MOUNT/backup/gnusocial ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3149
+		  echo "    obnam restore --to /var/www/$MICROBLOG_DOMAIN_NAME $USB_MOUNT/backup/gnusocial" >> /usr/bin/$RESTORE_SCRIPT_NAME
3150
+		  echo "    mysql -u root --password=$MARIADB_PASSWORD gnusocial -o < $USB_MOUNT/backup/gnusocial/database.sql" >> /usr/bin/$RESTORE_SCRIPT_NAME
3151
+          echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3152
+
3159 3153
 	  fi
3160 3154
   fi
3161 3155
   # redmatrix
3162 3156
   if ! [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MEDIA" ]]; then
3163 3157
 	  if [ $REDMATRIX_DOMAIN_NAME ]; then
3164
-          echo "  if [ ! -d $USB_MOUNT/backup/redmatrix ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3165
-          echo "    mkdir $USB_MOUNT/backup/redmatrix" >> /usr/bin/$BACKUP_SCRIPT_NAME
3166
-          echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3167
-	      echo "  obnam -r $USB_MOUNT/backup/redmatrix /var/www/$REDMATRIX_DOMAIN_NAME" >> /usr/bin/$BACKUP_SCRIPT_NAME
3168
-		  echo "  mysqldump --password=$MARIADB_PASSWORD redmatrix > $USB_MOUNT/backup/redmatrix/database.sql" >> /usr/bin/$BACKUP_SCRIPT_NAME
3158
+          echo "  if [ -d $USB_MOUNT/backup/redmatrix ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3159
+		  echo "    obnam restore --to /var/www/$REDMATRIX_DOMAIN_NAME $USB_MOUNT/backup/redmatrix" >> /usr/bin/$RESTORE_SCRIPT_NAME
3160
+		  echo "    mysql -u root --password=$MARIADB_PASSWORD redmatrix -o < $USB_MOUNT/backup/redmatrix/database.sql" >> /usr/bin/$RESTORE_SCRIPT_NAME
3161
+          echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3162
+IPT_NAME
3169 3163
 	  fi
3170 3164
   fi
3171 3165
   # dlna
3172 3166
   if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" ]]; then
3173
-      echo "  if [ ! -d $USB_MOUNT/backup/dlna ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
3174
-      echo "    mkdir $USB_MOUNT/backup/dlna" >> /usr/bin/$BACKUP_SCRIPT_NAME
3175
-      echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3176
-	  echo "  obnam -r $USB_MOUNT/backup/dlna /var/cache/minidlna" >> /usr/bin/$BACKUP_SCRIPT_NAME
3167
+      echo "  if [ -d $USB_MOUNT/backup/dlna ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
3168
+	  echo "    obnam restore --to /var/cache/minidlna $USB_MOUNT/backup/minidlna" >> /usr/bin/$RESTORE_SCRIPT_NAME
3169
+      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3177 3170
   fi
3178
-  echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
3179
-  chmod +x /usr/bin/$BACKUP_SCRIPT_NAME
3171
+  echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
3172
+  chmod 600 /usr/bin/$RESTORE_SCRIPT_NAME
3173
+  chmod +x /usr/bin/$RESTORE_SCRIPT_NAME
3180 3174
 
3181
-  echo 'create_backup_script' >> $COMPLETION_FILE
3175
+  echo 'create_restore_script' >> $COMPLETION_FILE
3182 3176
 }
3183 3177
 
3184 3178
 function install_final {
@@ -3220,6 +3214,7 @@ enable_zram
3220 3214
 random_number_generator
3221 3215
 set_your_domain_name
3222 3216
 create_backup_script
3217
+create_restore_script
3223 3218
 time_synchronisation
3224 3219
 configure_internet_protocol
3225 3220
 configure_ssh