|
@@ -301,11 +301,12 @@ function check_hwrng {
|
301
|
301
|
fi
|
302
|
302
|
}
|
303
|
303
|
|
304
|
|
-function create_backup_script {
|
305
|
|
- if grep -Fxq "create_backup_script" $COMPLETION_FILE; then
|
306
|
|
- return
|
|
304
|
+function import_gpg_key_to_root {
|
|
305
|
+ if [ ! $MY_GPG_PUBLIC_KEY ]; then
|
|
306
|
+ MY_GPG_PUBLIC_KEY=/tmp/public_key.gpg
|
307
|
307
|
fi
|
308
|
|
- apt-get -y --force-yes install duplicity gnupg
|
|
308
|
+
|
|
309
|
+ apt-get -y --force-yes install gnupg
|
309
|
310
|
|
310
|
311
|
if [ ! $MY_GPG_PUBLIC_KEY_ID ]; then
|
311
|
312
|
MY_GPG_PUBLIC_KEY_ID=$(su -c "gpg --list-keys $MY_USERNAME@$DOMAIN_NAME | grep 'pub '" - $MY_USERNAME | awk -F ' ' '{print $2}' | awk -F '/' '{print $2}')
|
|
@@ -313,9 +314,6 @@ function create_backup_script {
|
313
|
314
|
|
314
|
315
|
# make sure that the root user has access to your gpg public key
|
315
|
316
|
if [ $MY_GPG_PUBLIC_KEY_ID ]; then
|
316
|
|
- if [ ! $MY_GPG_PUBLIC_KEY ]; then
|
317
|
|
- MY_GPG_PUBLIC_KEY=/tmp/public_key.gpg
|
318
|
|
- fi
|
319
|
317
|
# This is a compromise. backup needs access to things which the user
|
320
|
318
|
# doesn't have access to, but also needs to be able to encrypt as the user
|
321
|
319
|
# Perhaps there is some better way to do this.
|
|
@@ -329,6 +327,15 @@ function create_backup_script {
|
329
|
327
|
shred -zu /home/$MY_USERNAME/temp_private_key.txt
|
330
|
328
|
shred -zu /home/$MY_USERNAME/temp_trust.txt
|
331
|
329
|
fi
|
|
330
|
+}
|
|
331
|
+
|
|
332
|
+function create_backup_script {
|
|
333
|
+ if grep -Fxq "create_backup_script" $COMPLETION_FILE; then
|
|
334
|
+ return
|
|
335
|
+ fi
|
|
336
|
+ apt-get -y --force-yes install duplicity
|
|
337
|
+
|
|
338
|
+ import_gpg_key_to_root
|
332
|
339
|
|
333
|
340
|
echo '#!/bin/bash' > /usr/bin/$BACKUP_SCRIPT_NAME
|
334
|
341
|
echo '' >> /usr/bin/$BACKUP_SCRIPT_NAME
|
|
@@ -466,6 +473,67 @@ function create_restore_script {
|
466
|
473
|
return
|
467
|
474
|
fi
|
468
|
475
|
apt-get -y --force-yes install duplicity
|
|
476
|
+
|
|
477
|
+ import_gpg_key_to_root
|
|
478
|
+
|
|
479
|
+ echo '#!/bin/bash' > /usr/bin/$RESTORE_SCRIPT_NAME
|
|
480
|
+ echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
481
|
+ echo 'GPG_KEY=$1' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
482
|
+ echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
483
|
+ echo 'if [ ! $GPG_KEY ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
484
|
+ echo " if [ ! $MY_GPG_PUBLIC_KEY_ID ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
485
|
+ echo ' echo "You need to specify a GPG key ID with which to restore from backup"' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
486
|
+ echo ' exit 1' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
487
|
+ echo ' fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
488
|
+ echo " GPG_KEY='$MY_GPG_PUBLIC_KEY_ID'" >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
489
|
+ echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
490
|
+ echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
491
|
+ echo "if [ ! -b $USB_DRIVE ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
492
|
+ echo ' echo "Please attach a USB drive"' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
493
|
+ echo ' exit 1' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
494
|
+ echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
495
|
+ echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
496
|
+ echo "if [ ! -d $USB_MOUNT ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
497
|
+ echo " mkdir $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
498
|
+ echo " mount $USB_DRIVE $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
499
|
+ echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
500
|
+ echo "if [ ! -d $USB_MOUNT/backup ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
501
|
+ echo ' echo "No backup directory found on the USB drive."' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
502
|
+ echo ' exit 2' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
503
|
+ echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
504
|
+ echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
505
|
+
|
|
506
|
+ echo "if [ -d $PUBLIC_MAILING_LIST_DIRECTORY ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
507
|
+ echo ' echo "Restoring public mailing list"' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
508
|
+ echo " duplicity --force file://$USB_MOUNT/backup/publicmailinglist $PUBLIC_MAILING_LIST_DIRECTORY" >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
509
|
+ echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
510
|
+
|
|
511
|
+ echo "if [ -d $XMPP_DIRECTORY ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
512
|
+ echo ' echo "Restoring XMPP settings"' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
513
|
+ echo " duplicity --force file://$USB_MOUNT/backup/xmpp $XMPP_DIRECTORY" >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
514
|
+ echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
515
|
+
|
|
516
|
+ echo "if [ -d /home/$MY_USERNAME/tempfiles ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
517
|
+ echo ' rm -rf /home/$MY_USERNAME/tempfiles/*' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
518
|
+ echo 'else' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
519
|
+ echo ' mkdir /home/$MY_USERNAME/tempfiles' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
520
|
+ echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
521
|
+ echo 'echo "Restoring web content and miscellaneous files"' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
522
|
+ echo "duplicity --force file://$USB_MOUNT/backup/tempfiles /home/$MY_USERNAME/tempfiles" >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
523
|
+
|
|
524
|
+ echo "if [ -d /home/$MY_USERNAME/Maildir ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
525
|
+ echo ' echo "Restoring emails"' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
526
|
+ echo " duplicity --force file://$USB_MOUNT/backup/Maildir /home/$MY_USERNAME/Maildir" >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
527
|
+ echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
528
|
+
|
|
529
|
+ echo "if [ -d /var/cache/minidlna ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
530
|
+ echo ' echo "Restoring DLNA cache"' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
531
|
+ echo " duplicity --force file://$USB_MOUNT/backup/dlna /var/cache/minidlna" >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
532
|
+ echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
533
|
+
|
|
534
|
+ echo 'echo "Restore completed"' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
535
|
+ echo 'exit 0' >> /usr/bin/$RESTORE_SCRIPT_NAME
|
|
536
|
+
|
469
|
537
|
echo 'create_restore_script' >> $COMPLETION_FILE
|
470
|
538
|
}
|
471
|
539
|
|