|
@@ -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 {
|