Browse Source

Add backup using obnam

Bob Mottram 9 years ago
parent
commit
63b1a9eda6
1 changed files with 18 additions and 10 deletions
  1. 18
    10
      src/freedombone

+ 18
- 10
src/freedombone View File

@@ -2416,7 +2416,9 @@ function get_mariadb_owncloud_admin_password {
2416 2416
 }
2417 2417
 
2418 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 2422
       # For rsyncrypto usage see http://archive09.linux.com/feature/125322
2421 2423
       echo "rsyncrypto -v -r ${1} $USB_MOUNT/backup/${2} $USB_MOUNT/backup/${2}.keys $BACKUP_CERTIFICATE" >> /usr/bin/$BACKUP_SCRIPT_NAME
2422 2424
   fi
@@ -2440,7 +2442,7 @@ function create_backup_script {
2440 2442
   if grep -Fxq "create_backup_script" $COMPLETION_FILE; then
2441 2443
       return
2442 2444
   fi
2443
-  apt-get -y install rsyncrypto cryptsetup libgfshare-bin
2445
+  apt-get -y install rsyncrypto cryptsetup libgfshare-bin obnam
2444 2446
 
2445 2447
   get_mariadb_password
2446 2448
   get_mariadb_gnusocial_admin_password
@@ -2909,7 +2911,9 @@ function restore_directory_from_usb {
2909 2911
   echo "    mkdir ${1}" >> /usr/bin/$RESTORE_SCRIPT_NAME
2910 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 2917
       echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/${2} ${1} $USB_MOUNT/backup/${2}.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
2914 2918
   fi
2915 2919
 }
@@ -2918,7 +2922,7 @@ function create_restore_script {
2918 2922
   if grep -Fxq "create_restore_script" $COMPLETION_FILE; then
2919 2923
       return
2920 2924
   fi
2921
-  apt-get -y install rsyncrypto cryptsetup
2925
+  apt-get -y install rsyncrypto cryptsetup obnam
2922 2926
 
2923 2927
   get_mariadb_password
2924 2928
   get_mariadb_gnusocial_admin_password
@@ -3671,7 +3675,10 @@ function create_freedns_updater {
3671 3675
 }
3672 3676
 
3673 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 3682
       # For rsyncrypto usage see http://archive09.linux.com/feature/125322
3676 3683
       echo -n "rsyncrypto -v -r ${1} " >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
3677 3684
       echo -n '$SERVER_DIRECTORY/backup/' >> /usr/bin/$BACKUP_TO_FRIENDS_SCRIPT_NAME
@@ -3703,7 +3710,7 @@ function backup_to_friends_servers {
3703 3710
       return
3704 3711
   fi
3705 3712
 
3706
-  apt-get -y install rsyncrypto sshpass
3713
+  apt-get -y install rsyncrypto sshpass obnam
3707 3714
 
3708 3715
   get_mariadb_password
3709 3716
   get_mariadb_gnusocial_admin_password
@@ -4250,7 +4257,10 @@ function restore_directory_from_friend {
4250 4257
   echo "  if [ ! -d ${1} ]; then" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4251 4258
   echo "    mkdir ${1}" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4252 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 4264
       echo -n '  rsyncrypto -v -d -r $SERVER_DIRECTORY/backup/' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4255 4265
       echo -n "${2} ${1} " >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4256 4266
       echo -n '$SERVER_DIRECTORY/backup/' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
@@ -4263,7 +4273,7 @@ function restore_from_friend {
4263 4273
       return
4264 4274
   fi
4265 4275
 
4266
-  apt-get -y install rsyncrypto sshpass
4276
+  apt-get -y install rsyncrypto sshpass obnam
4267 4277
 
4268 4278
   get_mariadb_password
4269 4279
   get_mariadb_gnusocial_admin_password
@@ -4633,8 +4643,6 @@ function restore_from_friend {
4633 4643
       echo '    exit 981' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4634 4644
       echo '  fi' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4635 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 4646
       echo "  cp -r /root/tempowncloud2/remoterestore/backup/owncloud2/owncloud/* /etc/owncloud/" >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4639 4647
       echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME
4640 4648
       echo '    exit 982' >> /usr/bin/$RESTORE_FROM_FRIEND_SCRIPT_NAME