Quellcode durchsuchen

Temp directory for duplicity

Bob Mottram vor 7 Jahren
Ursprung
Commit
a8e7aeb497
1 geänderte Dateien mit 31 neuen und 7 gelöschten Zeilen
  1. 31
    7
      src/freedombone-utils-backup

+ 31
- 7
src/freedombone-utils-backup Datei anzeigen

@@ -13,7 +13,7 @@
13 13
 # License
14 14
 # =======
15 15
 #
16
-# Copyright (C) 2014-2016 Bob Mottram <bob@freedombone.net>
16
+# Copyright (C) 2014-2017 Bob Mottram <bob@freedombone.net>
17 17
 #
18 18
 # This program is free software: you can redistribute it and/or modify
19 19
 # it under the terms of the GNU Affero General Public License as published by
@@ -34,6 +34,20 @@ SUSPENDED_SITE=
34 34
 # Dummy password used for the backup key
35 35
 BACKUP_DUMMY_PASSWORD='backup'
36 36
 
37
+BACKUP_TEMP_DIRECTORY=/root/.backuptemp
38
+
39
+function create_backups_temp_directory {
40
+    if [ ! -d $BACKUP_TEMP_DIRECTORY ]; then
41
+        mkdir $BACKUP_TEMP_DIRECTORY
42
+    fi
43
+}
44
+
45
+function remove_backups_temp_directory {
46
+    if [ -d $BACKUP_TEMP_DIRECTORY ]; then
47
+        rm -rf $BACKUP_TEMP_DIRECTORY
48
+    fi
49
+}
50
+
37 51
 function suspend_site {
38 52
     # suspends a given website
39 53
     SUSPENDED_SITE="$1"
@@ -248,9 +262,10 @@ function set_obnam_client_name {
248 262
 }
249 263
 
250 264
 function backup_directory_to_usb_duplicity {
251
-    echo "$BACKUP_DUMMY_PASSWORD" | duplicity full --encrypt-key $MY_BACKUP_KEY_ID --full-if-older-than 4W --exclude-other-filesystems ${1} file://$USB_MOUNT/backup/${2}
265
+    create_backups_temp_directory
266
+    echo "$BACKUP_DUMMY_PASSWORD" | duplicity full --tempdir $BACKUP_TEMP_DIRECTORY --encrypt-key $MY_BACKUP_KEY_ID --full-if-older-than 4W --exclude-other-filesystems ${1} file://$USB_MOUNT/backup/${2}
252 267
     if [[ $ENABLE_BACKUP_VERIFICATION == "yes" ]]; then
253
-        echo "$BACKUP_DUMMY_PASSWORD" | duplicity verify --encrypt-key $MY_BACKUP_KEY_ID --full-if-older-than 4W --exclude-other-filesystems ${1} file://$USB_MOUNT/backup/${2}
268
+        echo "$BACKUP_DUMMY_PASSWORD" | duplicity verify --tempdir $BACKUP_TEMP_DIRECTORY --encrypt-key $MY_BACKUP_KEY_ID --full-if-older-than 4W --exclude-other-filesystems ${1} file://$USB_MOUNT/backup/${2}
254 269
         if [ ! "$?" = "0" ]; then
255 270
             umount $USB_MOUNT
256 271
             rm -rf $USB_MOUNT
@@ -260,9 +275,11 @@ function backup_directory_to_usb_duplicity {
260 275
             fi
261 276
             function_check restart_site
262 277
             restart_site
278
+            remove_backups_temp_directory
263 279
             exit 683252
264 280
         fi
265 281
     fi
282
+    remove_backups_temp_directory
266 283
 }
267 284
 
268 285
 function backup_directory_to_usb_obnam {
@@ -330,7 +347,9 @@ function restore_directory_from_usb_obnam {
330 347
 }
331 348
 
332 349
 function restore_directory_from_usb_duplicity {
333
-    echo "$BACKUP_DUMMY_PASSWORD" | duplicity restore --force file://$USB_MOUNT/backup/${2} ${1}
350
+    create_backups_temp_directory
351
+    echo "$BACKUP_DUMMY_PASSWORD" | duplicity restore --tempdir $BACKUP_TEMP_DIRECTORY --force file://$USB_MOUNT/backup/${2} ${1}
352
+    remove_backups_temp_directory
334 353
 }
335 354
 
336 355
 function restore_directory_from_usb {
@@ -357,7 +376,9 @@ function restore_directory_from_friend_obnam {
357 376
 }
358 377
 
359 378
 function restore_directory_from_friend_duplicity {
360
-    echo "$BACKUP_DUMMY_PASSWORD" | duplicity restore --force file://$SERVER_DIRECTORY/backup/${2} ${1}
379
+    create_backups_temp_directory
380
+    echo "$BACKUP_DUMMY_PASSWORD" | duplicity restore --tempdir $BACKUP_TEMP_DIRECTORY --force file://$SERVER_DIRECTORY/backup/${2} ${1}
381
+    remove_backups_temp_directory
361 382
 }
362 383
 
363 384
 function restore_directory_from_friend {
@@ -401,9 +422,10 @@ function set_user_permissions {
401 422
 }
402 423
 
403 424
 function backup_directory_to_friend_duplicity {
404
-    echo "$BACKUP_DUMMY_PASSWORD" | duplicity full --ssh-askpass --encrypt-key ${ADMIN_BACKUP_KEY_ID} --full-if-older-than 4W --exclude-other-filesystems ${1} $SERVER_DIRECTORY/backup/${2}
425
+    create_backups_temp_directory
426
+    echo "$BACKUP_DUMMY_PASSWORD" | duplicity full --tempdir $BACKUP_TEMP_DIRECTORY --ssh-askpass --encrypt-key ${ADMIN_BACKUP_KEY_ID} --full-if-older-than 4W --exclude-other-filesystems ${1} $SERVER_DIRECTORY/backup/${2}
405 427
     if [[ $ENABLE_BACKUP_VERIFICATION == "yes" ]]; then
406
-        echo "$BACKUP_DUMMY_PASSWORD" | duplicity verify --ssh-askpass --encrypt-key ${ADMIN_BACKUP_KEY_ID} --full-if-older-than 4W --exclude-other-filesystems ${1} $SERVER_DIRECTORY/backup/${2}
428
+        echo "$BACKUP_DUMMY_PASSWORD" | duplicity verify --tempdir $BACKUP_TEMP_DIRECTORY --ssh-askpass --encrypt-key ${ADMIN_BACKUP_KEY_ID} --full-if-older-than 4W --exclude-other-filesystems ${1} $SERVER_DIRECTORY/backup/${2}
407 429
         if [ ! "$?" = "0" ]; then
408 430
             if [[ ${1} == "/root/temp"* || ${1} == *"tempbackup" ]]; then
409 431
                 shred -zu ${1}/*
@@ -411,9 +433,11 @@ function backup_directory_to_friend_duplicity {
411 433
             fi
412 434
             function_check restart_site
413 435
             restart_site
436
+            remove_backups_temp_directory
414 437
             exit 683252
415 438
         fi
416 439
     fi
440
+    remove_backups_temp_directory
417 441
 }
418 442
 
419 443
 function backup_directory_to_friend_obnam {