Browse Source

Backup with gpg key

Bob Mottram 10 years ago
parent
commit
0c5e97cf85
1 changed files with 26 additions and 12 deletions
  1. 26
    12
      install-freedombone.sh

+ 26
- 12
install-freedombone.sh View File

@@ -307,8 +307,22 @@ function create_backup_script {
307 307
   fi
308 308
   apt-get -y --force-yes install duplicity gnupg
309 309
 
310
+  if [ ! MY_GPG_PUBLIC_KEY_ID ]; then
311
+      MY_GPG_PUBLIC_KEY_ID=$(su -c "gpg --list-keys $MY_USERNAME@$DOMAIN_NAME | grep 'pub ' | awk -F ' ' '{print $2}' | awk -F '/' '{print $2}'" - $MY_USERNAME)
312
+  fi
313
+
310 314
   echo '#!/bin/bash' > /usr/bin/$BACKUP_SCRIPT_NAME
311 315
   echo '' >> /usr/bin/$BACKUP_SCRIPT_NAME
316
+  echo 'GPG_KEY=$1' >> /usr/bin/$BACKUP_SCRIPT_NAME
317
+  echo '' >> /usr/bin/$BACKUP_SCRIPT_NAME
318
+  echo 'if [ ! $GPG_KEY ]; then' >> /usr/bin/$BACKUP_SCRIPT_NAME
319
+  echo "  if [ ! $MY_GPG_PUBLIC_KEY_ID ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
320
+  echo '    echo "You need to specify a GPG key ID with which to create the backup"' >> /usr/bin/$BACKUP_SCRIPT_NAME
321
+  echo '    exit 1' >> /usr/bin/$BACKUP_SCRIPT_NAME
322
+  echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
323
+  echo "  GPG_KEY=$MY_GPG_PUBLIC_KEY_ID" >> /usr/bin/$BACKUP_SCRIPT_NAME
324
+  echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
325
+  echo '' >> /usr/bin/$BACKUP_SCRIPT_NAME
312 326
   echo "if [ ! -b $USB_DRIVE ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
313 327
   echo '  echo "Please attach a USB drive"' >> /usr/bin/$BACKUP_SCRIPT_NAME
314 328
   echo '  exit 1' >> /usr/bin/$BACKUP_SCRIPT_NAME
@@ -328,19 +342,19 @@ function create_backup_script {
328 342
   echo "  mkdir /home/$MY_USERNAME/tempfiles" >> /usr/bin/$BACKUP_SCRIPT_NAME
329 343
   echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
330 344
   if [[ $MICROBLOG_INSTALLED == "yes" ]]; then
331
-	  echo 'echo "Obtaining GNU Social database backup"' >> /usr/bin/$BACKUP_SCRIPT_NAME
345
+      echo 'echo "Obtaining GNU Social database backup"' >> /usr/bin/$BACKUP_SCRIPT_NAME
332 346
       echo "mysqldump --password=$MARIADB_PASSWORD gnusocial > /home/$MY_USERNAME/tempfiles/gnusocial.sql" >> /usr/bin/$BACKUP_SCRIPT_NAME
333 347
   fi
334 348
   if [[ $REDMATRIX_INSTALLED == "yes" ]]; then
335
-	  echo 'echo "Obtaining Red Matrix database backup"' >> /usr/bin/$BACKUP_SCRIPT_NAME
349
+      echo 'echo "Obtaining Red Matrix database backup"' >> /usr/bin/$BACKUP_SCRIPT_NAME
336 350
       echo "mysqldump --password=$MARIADB_PASSWORD redmatrix > /home/$MY_USERNAME/tempfiles/redmatrix.sql" >> /usr/bin/$BACKUP_SCRIPT_NAME
337 351
   fi
338 352
   if [[ $OWNCLOUD_INSTALLED == "yes" ]]; then
339
-	  echo 'echo "Obtaining Owncloud data backup"' >> /usr/bin/$BACKUP_SCRIPT_NAME
353
+      echo 'echo "Obtaining Owncloud data backup"' >> /usr/bin/$BACKUP_SCRIPT_NAME
340 354
       echo "tar -czvf /home/$MY_USERNAME/tempfiles/owncloud.tar.gz /var/www/$OWNCLOUD_DOMAIN_NAME/htdocs/config /var/www/$OWNCLOUD_DOMAIN_NAME/htdocs/data" >> /usr/bin/$BACKUP_SCRIPT_NAME
341 355
   fi
342 356
   if [[ $WIKI_INSTALLED == "yes" ]]; then
343
-	  echo 'echo "Obtaining wiki data backup"' >> /usr/bin/$BACKUP_SCRIPT_NAME
357
+      echo 'echo "Obtaining wiki data backup"' >> /usr/bin/$BACKUP_SCRIPT_NAME
344 358
       echo "tar -czvf /home/$MY_USERNAME/tempfiles/wiki.tar.gz /var/www/$WIKI_DOMAIN_NAME/htdocs" >> /usr/bin/$BACKUP_SCRIPT_NAME
345 359
   fi
346 360
   echo 'echo "Archiving miscellaneous files"' >> /usr/bin/$BACKUP_SCRIPT_NAME
@@ -2122,8 +2136,8 @@ function import_email {
2122 2136
   EMAIL_COMPLETE_MSG='  *** Freedombone mailbox installation is complete ***'
2123 2137
   if grep -Fxq "import_email" $COMPLETION_FILE; then
2124 2138
       if [[ $SYSTEM_TYPE == "$VARIANT_MAILBOX" ]]; then
2125
-		  create_backup_script
2126
-		  create_restore_script
2139
+          create_backup_script
2140
+          create_restore_script
2127 2141
           backup_to_friends_servers
2128 2142
           echo ''
2129 2143
           echo "$EMAIL_COMPLETE_MSG"
@@ -2148,8 +2162,8 @@ function import_email {
2148 2162
   fi
2149 2163
   echo 'import_email' >> $COMPLETION_FILE
2150 2164
   if [[ $SYSTEM_TYPE == "$VARIANT_MAILBOX" ]]; then
2151
-	  create_backup_script
2152
-	  create_restore_script
2165
+      create_backup_script
2166
+      create_restore_script
2153 2167
       backup_to_friends_servers
2154 2168
       apt-get -y --force-yes autoremove
2155 2169
       # unmount any attached usb drive
@@ -2213,8 +2227,8 @@ function install_owncloud {
2213 2227
   OWNCLOUD_COMPLETION_MSG2="Open $OWNCLOUD_DOMAIN_NAME in a web browser to complete the setup"
2214 2228
   if grep -Fxq "install_owncloud" $COMPLETION_FILE; then
2215 2229
       if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" ]]; then
2216
-		  create_backup_script
2217
-		  create_restore_script
2230
+          create_backup_script
2231
+          create_restore_script
2218 2232
           backup_to_friends_servers
2219 2233
           apt-get -y --force-yes autoremove
2220 2234
           # unmount any attached usb drive
@@ -2390,8 +2404,8 @@ function install_owncloud {
2390 2404
   echo 'install_owncloud' >> $COMPLETION_FILE
2391 2405
 
2392 2406
   if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" ]]; then
2393
-	  create_backup_script
2394
-	  create_restore_script
2407
+      create_backup_script
2408
+      create_restore_script
2395 2409
       backup_to_friends_servers
2396 2410
       apt-get -y --force-yes autoremove
2397 2411
       # unmount any attached usb drive