浏览代码

Add backup using obnam

Bob Mottram 9 年前
父节点
当前提交
63b1a9eda6
共有 1 个文件被更改,包括 18 次插入10 次删除
  1. 18
    10
      src/freedombone

+ 18
- 10
src/freedombone 查看文件

2416
 }
2416
 }
2417
 
2417
 
2418
 function backup_directory_to_usb {
2418
 function backup_directory_to_usb {
2419
-  if [[ $BACKUP_TYPE == 'rsync' ]]; then
2419
+  if [[ $BACKUP_TYPE == 'obnam' ]]; then
2420
+      echo "obnam backup -r $USB_MOUNT/backup/${2} ${1}" >> /usr/bin/$BACKUP_SCRIPT_NAME
2421
+  else
2420
       # For rsyncrypto usage see http://archive09.linux.com/feature/125322
2422
       # For rsyncrypto usage see http://archive09.linux.com/feature/125322
2421
       echo "rsyncrypto -v -r ${1} $USB_MOUNT/backup/${2} $USB_MOUNT/backup/${2}.keys $BACKUP_CERTIFICATE" >> /usr/bin/$BACKUP_SCRIPT_NAME
2423
       echo "rsyncrypto -v -r ${1} $USB_MOUNT/backup/${2} $USB_MOUNT/backup/${2}.keys $BACKUP_CERTIFICATE" >> /usr/bin/$BACKUP_SCRIPT_NAME
2422
   fi
2424
   fi
2440
   if grep -Fxq "create_backup_script" $COMPLETION_FILE; then
2442
   if grep -Fxq "create_backup_script" $COMPLETION_FILE; then
2441
       return
2443
       return
2442
   fi
2444
   fi
2443
-  apt-get -y install rsyncrypto cryptsetup libgfshare-bin
2445
+  apt-get -y install rsyncrypto cryptsetup libgfshare-bin obnam
2444
 
2446
 
2445
   get_mariadb_password
2447
   get_mariadb_password
2446
   get_mariadb_gnusocial_admin_password
2448
   get_mariadb_gnusocial_admin_password
2909
   echo "    mkdir ${1}" >> /usr/bin/$RESTORE_SCRIPT_NAME
2911
   echo "    mkdir ${1}" >> /usr/bin/$RESTORE_SCRIPT_NAME
2910
   echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
2912
   echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
2911
 
2913
 
2912
-  if [[ $BACKUP_TYPE == 'rsync' ]]; then
2914
+  if [[ $BACKUP_TYPE == 'obnam' ]]; then
2915
+      echo "  obnam restore -r $USB_MOUNT/backup/${2} --to ${1}" >> /usr/bin/$RESTORE_SCRIPT_NAME
2916
+  else
2913
       echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/${2} ${1} $USB_MOUNT/backup/${2}.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
2917
       echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/${2} ${1} $USB_MOUNT/backup/${2}.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
2914
   fi
2918
   fi
2915
 }
2919
 }
2918
   if grep -Fxq "create_restore_script" $COMPLETION_FILE; then
2922
   if grep -Fxq "create_restore_script" $COMPLETION_FILE; then
2919
       return
2923
       return
2920
   fi
2924
   fi
2921
-  apt-get -y install rsyncrypto cryptsetup
2925
+  apt-get -y install rsyncrypto cryptsetup obnam
2922
 
2926
 
2923
   get_mariadb_password
2927
   get_mariadb_password
2924
   get_mariadb_gnusocial_admin_password
2928
   get_mariadb_gnusocial_admin_password
3671
 }
3675
 }
3672
 
3676
 
3673
 function backup_directory_to_friend {
3677
 function backup_directory_to_friend {
3674
-  if [[ $BACKUP_TYPE == 'rsync' ]]; then
3678
+  if [[ $BACKUP_TYPE == 'obnam' ]]; then
3679
+      echo -n 'obnam backup -r $SERVER_DIRECTORY/backup/' >> /usr/bin/$BACKUP_SCRIPT_NAME
3680
+      echo "${2} ${1}" >> /usr/bin/$BACKUP_SCRIPT_NAME
3681
+  else
3675
       # For rsyncrypto usage see http://archive09.linux.com/feature/125322
3682
       # For rsyncrypto usage see http://archive09.linux.com/feature/125322
3676
       echo -n "rsyncrypto -v -r ${1} " >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
3683
       echo -n "rsyncrypto -v -r ${1} " >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
3677
       echo -n '$SERVER_DIRECTORY/backup/' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
3684
       echo -n '$SERVER_DIRECTORY/backup/' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
3703
       return
3710
       return
3704
   fi
3711
   fi
3705
 
3712
 
3706
-  apt-get -y install rsyncrypto sshpass
3713
+  apt-get -y install rsyncrypto sshpass obnam
3707
 
3714
 
3708
   get_mariadb_password
3715
   get_mariadb_password
3709
   get_mariadb_gnusocial_admin_password
3716
   get_mariadb_gnusocial_admin_password
4250
   echo "  if [ ! -d ${1} ]; then" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4257
   echo "  if [ ! -d ${1} ]; then" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4251
   echo "    mkdir ${1}" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4258
   echo "    mkdir ${1}" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4252
   echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4259
   echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4253
-  if [[ $BACKUP_TYPE == 'rsync' ]]; then
4260
+  if [[ $BACKUP_TYPE == 'obnam' ]]; then
4261
+      echo -n '  obnam restore -r $SERVER_DIRECTORY/backup/' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4262
+      echo "${2} --to ${1}" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4263
+  else
4254
       echo -n '  rsyncrypto -v -d -r $SERVER_DIRECTORY/backup/' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4264
       echo -n '  rsyncrypto -v -d -r $SERVER_DIRECTORY/backup/' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4255
       echo -n "${2} ${1} " >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4265
       echo -n "${2} ${1} " >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4256
       echo -n '$SERVER_DIRECTORY/backup/' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4266
       echo -n '$SERVER_DIRECTORY/backup/' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4263
       return
4273
       return
4264
   fi
4274
   fi
4265
 
4275
 
4266
-  apt-get -y install rsyncrypto sshpass
4276
+  apt-get -y install rsyncrypto sshpass obnam
4267
 
4277
 
4268
   get_mariadb_password
4278
   get_mariadb_password
4269
   get_mariadb_gnusocial_admin_password
4279
   get_mariadb_gnusocial_admin_password
4633
       echo '    exit 981' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4643
       echo '    exit 981' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4634
       echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4644
       echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4635
       restore_directory_from_friend /root/tempowncloud2 owncloud2
4645
       restore_directory_from_friend /root/tempowncloud2 owncloud2
4636
-      echo -n '  rsyncrypto -v -d -r $SERVER_DIRECTORY/backup/owncloud2 /root/tempowncloud2 $SERVER_DIRECTORY/backup/owncloud2.keys ' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4637
-      echo "$BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4638
       echo "  cp -r /root/tempowncloud2/remoterestore/backup/owncloud2/owncloud/* /etc/owncloud/" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4646
       echo "  cp -r /root/tempowncloud2/remoterestore/backup/owncloud2/owncloud/* /etc/owncloud/" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4639
       echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4647
       echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4640
       echo '    exit 982' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4648
       echo '    exit 982' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME