Pārlūkot izejas kodu

Starting on migration of database user settings

Bob Mottram 10 gadus atpakaļ
vecāks
revīzija
7ef2f07f41
1 mainītis faili ar 51 papildinājumiem un 7 dzēšanām
  1. 51
    7
      install-freedombone.sh

+ 51
- 7
install-freedombone.sh Parādīt failu

@@ -292,6 +292,9 @@ GITHUB_USERNAME=
292 292
 # Directory where github projects will be backed up
293 293
 GITHUB_BACKUP_DIRECTORY=/var/backups/github
294 294
 
295
+# Used to indicate whether the backup contains MariaDB databases or not
296
+BACKUP_INCLUDES_DATABASES="no"
297
+
295 298
 # message if something fails to install
296 299
 CHECK_MESSAGE="Check your internet connection, /etc/network/interfaces and /etc/resolv.conf, then delete $COMPLETION_FILE, run 'rm -fR /var/lib/apt/lists/* && apt-get update --fix-missing' and run this script again. If hash sum mismatches persist then try setting $DEBIAN_REPO to a different mirror and also change /etc/apt/sources.list."
297 300
 
@@ -612,7 +615,9 @@ function create_backup_script {
612 615
   echo "if [ ! -d /home/$MY_USERNAME/tempfiles ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
613 616
   echo "  mkdir /home/$MY_USERNAME/tempfiles" >> /usr/bin/$BACKUP_SCRIPT_NAME
614 617
   echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
618
+  echo '' >> /usr/bin/$BACKUP_SCRIPT_NAME
615 619
   if grep -Fxq "install_gnu_social" $COMPLETION_FILE; then
620
+      BACKUP_INCLUDES_DATABASES="yes"
616 621
       echo "if [ ! -d $USB_MOUNT/backup/gnusocial ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
617 622
       echo "  mkdir -p $USB_MOUNT/backup/gnusocial" >> /usr/bin/$BACKUP_SCRIPT_NAME
618 623
       echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
@@ -623,12 +628,15 @@ function create_backup_script {
623 628
       echo "  if [ ! $MARIADB_PASSWORD ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
624 629
       echo "    echo 'No MariaDB password was given'" >> /usr/bin/$BACKUP_SCRIPT_NAME
625 630
       echo "  fi" >> /usr/bin/$BACKUP_SCRIPT_NAME
631
+      echo "  umount $USB_MOUNT" >> /usr/bin/$BACKUP_SCRIPT_NAME
632
+      echo "  rm -rf $USB_MOUNT" >> /usr/bin/$BACKUP_SCRIPT_NAME
626 633
       echo '  exit 379' >> /usr/bin/$BACKUP_SCRIPT_NAME
627 634
       echo "fi" >> /usr/bin/$BACKUP_SCRIPT_NAME
628 635
       echo 'echo "Backing up GNU social installation"' >> /usr/bin/$BACKUP_SCRIPT_NAME
629 636
       echo "rsyncrypto -v -r /var/www/$MICROBLOG_DOMAIN_NAME/htdocs $USB_MOUNT/backup/gnusocial $USB_MOUNT/backup/gnusocial.keys $BACKUP_CERTIFICATE" >> /usr/bin/$BACKUP_SCRIPT_NAME
630 637
   fi
631 638
   if grep -Fxq "install_redmatrix" $COMPLETION_FILE; then
639
+      BACKUP_INCLUDES_DATABASES="yes"
632 640
       echo "if [ ! -d $USB_MOUNT/backup/redmatrix ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
633 641
       echo "  mkdir -p $USB_MOUNT/backup/redmatrix" >> /usr/bin/$BACKUP_SCRIPT_NAME
634 642
       echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
@@ -639,12 +647,15 @@ function create_backup_script {
639 647
       echo "  if [ ! $MARIADB_PASSWORD ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
640 648
       echo "    echo 'No MariaDB password was given'" >> /usr/bin/$BACKUP_SCRIPT_NAME
641 649
       echo "  fi" >> /usr/bin/$BACKUP_SCRIPT_NAME
650
+      echo "  umount $USB_MOUNT" >> /usr/bin/$BACKUP_SCRIPT_NAME
651
+      echo "  rm -rf $USB_MOUNT" >> /usr/bin/$BACKUP_SCRIPT_NAME
642 652
       echo '  exit 378' >> /usr/bin/$BACKUP_SCRIPT_NAME
643 653
       echo "fi" >> /usr/bin/$BACKUP_SCRIPT_NAME
644 654
       echo 'echo "Backing up Red Matrix installation"' >> /usr/bin/$BACKUP_SCRIPT_NAME
645 655
       echo "rsyncrypto -v -r /var/www/$REDMATRIX_DOMAIN_NAME/htdocs $USB_MOUNT/backup/redmatrix $USB_MOUNT/backup/redmatrix.keys $BACKUP_CERTIFICATE" >> /usr/bin/$BACKUP_SCRIPT_NAME
646 656
   fi
647 657
   if grep -Fxq "install_owncloud" $COMPLETION_FILE; then
658
+      BACKUP_INCLUDES_DATABASES="yes"
648 659
       echo "if [ ! -d $USB_MOUNT/backup/owncloud ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
649 660
       echo "  mkdir -p $USB_MOUNT/backup/owncloud" >> /usr/bin/$BACKUP_SCRIPT_NAME
650 661
       echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
@@ -654,6 +665,8 @@ function create_backup_script {
654 665
       echo "  if [ ! $MARIADB_PASSWORD ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
655 666
       echo "    echo 'No MariaDB password was given'" >> /usr/bin/$BACKUP_SCRIPT_NAME
656 667
       echo "  fi" >> /usr/bin/$BACKUP_SCRIPT_NAME
668
+      echo "  umount $USB_MOUNT" >> /usr/bin/$BACKUP_SCRIPT_NAME
669
+      echo "  rm -rf $USB_MOUNT" >> /usr/bin/$BACKUP_SCRIPT_NAME
657 670
       echo '  exit 377' >> /usr/bin/$BACKUP_SCRIPT_NAME
658 671
       echo "fi" >> /usr/bin/$BACKUP_SCRIPT_NAME
659 672
       echo 'echo "Obtaining Owncloud data backup"' >> /usr/bin/$BACKUP_SCRIPT_NAME
@@ -673,8 +686,6 @@ function create_backup_script {
673 686
       echo 'echo "Obtaining blog backup"' >> /usr/bin/$BACKUP_SCRIPT_NAME
674 687
       echo "rsyncrypto -v -r /var/www/$FULLBLOG_DOMAIN_NAME/htdocs $USB_MOUNT/backupblog $USB_MOUNT/backup/blog.keys $BACKUP_CERTIFICATE" >> /usr/bin/$BACKUP_SCRIPT_NAME
675 688
   fi
676
-  echo 'echo "Archiving miscellaneous files"' >> /usr/bin/$BACKUP_SCRIPT_NAME
677
-  echo "tar -czvf /home/$MY_USERNAME/tempfiles/miscfiles.tar.gz /home/$MY_USERNAME/.gnupg /home/$MY_USERNAME/.muttrc /home/$MY_USERNAME/.procmailrc /home/$MY_USERNAME/.ssh /var/lib/mysql/mysql /etc/nginx/sites-available /home/$MY_USERNAME/README" >> /usr/bin/$BACKUP_SCRIPT_NAME
678 689
 
679 690
   echo '' >> /usr/bin/$BACKUP_SCRIPT_NAME
680 691
   echo '# Backup certificates' >> /usr/bin/$BACKUP_SCRIPT_NAME
@@ -735,6 +746,8 @@ function create_backup_script {
735 746
   echo "  if [ ! -d $USB_MOUNT/backup/misc ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
736 747
   echo "    mkdir -p $USB_MOUNT/backup/misc" >> /usr/bin/$BACKUP_SCRIPT_NAME
737 748
   echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
749
+  echo '  echo "Archiving miscellaneous files"' >> /usr/bin/$BACKUP_SCRIPT_NAME
750
+  echo "  tar -czvf /home/$MY_USERNAME/tempfiles/miscfiles.tar.gz /home/$MY_USERNAME/.gnupg /home/$MY_USERNAME/.muttrc /home/$MY_USERNAME/.procmailrc /home/$MY_USERNAME/.ssh /etc/nginx/sites-available /home/$MY_USERNAME/README" >> /usr/bin/$BACKUP_SCRIPT_NAME
738 751
   echo "  rsyncrypto  -v -r /home/$MY_USERNAME/tempfiles $USB_MOUNT/backup/misc $USB_MOUNT/backup/misc.keys $BACKUP_CERTIFICATE" >> /usr/bin/$BACKUP_SCRIPT_NAME
739 752
   echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
740 753
   echo '' >> /usr/bin/$BACKUP_SCRIPT_NAME
@@ -755,8 +768,20 @@ function create_backup_script {
755 768
   echo '  fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
756 769
   echo "  rsyncrypto  -v -r /var/cache/minidlna $USB_MOUNT/backup/dlna $USB_MOUNT/backup/dlna.keys $BACKUP_CERTIFICATE" >> /usr/bin/$BACKUP_SCRIPT_NAME
757 770
   echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
758
-
759 771
   echo '' >> /usr/bin/$BACKUP_SCRIPT_NAME
772
+
773
+  if [[ $BACKUP_INCLUDES_DATABASES == "yes" ]]; then
774
+      echo '# Mysql settings' >> /usr/bin/$BACKUP_SCRIPT_NAME
775
+      echo "mysqldump --password=$MARIADB_PASSWORD mysql user > $USB_MOUNT/backup/mysql.sql" >> /usr/bin/$BACKUP_SCRIPT_NAME
776
+      echo "if [ ! -s $USB_MOUNT/backup/mysql.sql ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
777
+      echo '  echo "Unable to backup mysql settings"' >> /usr/bin/$BACKUP_SCRIPT_NAME
778
+      echo "  umount $USB_MOUNT" >> /usr/bin/$BACKUP_SCRIPT_NAME
779
+      echo "  rm -rf $USB_MOUNT" >> /usr/bin/$BACKUP_SCRIPT_NAME
780
+      echo '  exit 653' >> /usr/bin/$BACKUP_SCRIPT_NAME
781
+      echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
782
+      echo '' >> /usr/bin/$BACKUP_SCRIPT_NAME
783
+  fi
784
+
760 785
   echo 'sync' >> /usr/bin/$BACKUP_SCRIPT_NAME
761 786
   echo '# Remove temporary files' >> /usr/bin/$BACKUP_SCRIPT_NAME
762 787
   echo "if [ -d /home/$MY_USERNAME/tempfiles ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
@@ -826,6 +851,22 @@ function create_restore_script {
826 851
   echo '    exit 563' >> /usr/bin/$RESTORE_SCRIPT_NAME
827 852
   echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
828 853
   echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
854
+  echo '# MariaDB password' >> /usr/bin/$RESTORE_SCRIPT_NAME
855
+  echo "DATABASE_PASSWORD=$MARIADB_PASSWORD" >> /usr/bin/$RESTORE_SCRIPT_NAME
856
+  echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
857
+
858
+  if [[ $BACKUP_INCLUDES_DATABASES == "yes" ]]; then
859
+      echo '  echo "Restoring mysql settings"' >> /usr/bin/$RESTORE_SCRIPT_NAME
860
+      echo '  if [ ! -d /root/tempmariadb ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
861
+      echo '      mkdir /root/tempmariadb' >> /usr/bin/$RESTORE_SCRIPT_NAME
862
+      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
863
+      echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/mariadb /root/tempmariadb $USB_MOUNT/backup/mariadb.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
864
+      echo '  mysql -u root --password=$DATABASE_PASSWORD mysql -o < /root/tempmariadb/mysql.sql' >> /usr/bin/$RESTORE_SCRIPT_NAME
865
+      echo '  shred -zu /root/tempmariadb/mysql.sql' >> /usr/bin/$RESTORE_SCRIPT_NAME
866
+      echo '  rm -rf /root/tempmariadb' >> /usr/bin/$RESTORE_SCRIPT_NAME
867
+      echo '  mysql -u root --password=$DATABASE_PASSWORD "flush privileges;"' >> /usr/bin/$RESTORE_SCRIPT_NAME
868
+      echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
869
+  fi
829 870
 
830 871
   echo "if [ -d $USB_MOUNT/backup/ssl ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
831 872
   echo '  echo "Restoring certificates"' >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -876,7 +917,8 @@ function create_restore_script {
876 917
   if grep -Fxq "install_gnu_social" $COMPLETION_FILE; then
877 918
       echo "if [ -f $USB_MOUNT/backup/gnusocial.sql ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
878 919
       echo '  echo "Restoring microblog database"' >> /usr/bin/$RESTORE_SCRIPT_NAME
879
-      echo "  mysql -u root --password=$MARIADB_PASSWORD gnusocial -o < $USB_MOUNT/backup/gnusocial.sql" >> /usr/bin/$RESTORE_SCRIPT_NAME
920
+      echo -n '  mysql -u root --password=$DATABASE_PASSWORD gnusocial -o < ' >> /usr/bin/$RESTORE_SCRIPT_NAME
921
+      echo "$USB_MOUNT/backup/gnusocial.sql" >> /usr/bin/$RESTORE_SCRIPT_NAME
880 922
       echo '  echo "Restoring microblog installation"' >> /usr/bin/$RESTORE_SCRIPT_NAME
881 923
       echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/gnusocial /var/www/$MICROBLOG_DOMAIN_NAME/htdocs $USB_MOUNT/backup/gnusocial.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
882 924
       echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -886,7 +928,8 @@ function create_restore_script {
886 928
   if grep -Fxq "install_redmatrix" $COMPLETION_FILE; then
887 929
       echo "if [ -f $USB_MOUNT/backup/redmatrix.sql ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
888 930
       echo '  echo "Restoring Red Matrix database"' >> /usr/bin/$RESTORE_SCRIPT_NAME
889
-      echo "  mysql -u root --password=$MARIADB_PASSWORD redmatrix -o < $USB_MOUNT/backup/redmatrix.sql" >> /usr/bin/$RESTORE_SCRIPT_NAME
931
+      echo -n '  mysql -u root --password=$DATABASE_PASSWORD redmatrix -o < ' >> /usr/bin/$RESTORE_SCRIPT_NAME
932
+      echo "$USB_MOUNT/backup/redmatrix.sql" >> /usr/bin/$RESTORE_SCRIPT_NAME
890 933
       echo '  echo "Restoring Red Matrix installation"' >> /usr/bin/$RESTORE_SCRIPT_NAME
891 934
       echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/redmatrix /var/www/$REDMATRIX_DOMAIN_NAME/htdocs $USB_MOUNT/backup/redmatrix.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
892 935
       echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -896,7 +939,8 @@ function create_restore_script {
896 939
   if grep -Fxq "install_owncloud" $COMPLETION_FILE; then
897 940
       echo "if [ -f $USB_MOUNT/backup/owncloud.sql ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
898 941
       echo '  echo "Restoring owncloud database"' >> /usr/bin/$RESTORE_SCRIPT_NAME
899
-      echo "  mysql -u root --password=$MARIADB_PASSWORD owncloud -o < $USB_MOUNT/backup/owncloud.sql" >> /usr/bin/$RESTORE_SCRIPT_NAME
942
+      echo -n '  mysql -u root --password=$DATABASE_PASSWORD owncloud -o < ' >> /usr/bin/$RESTORE_SCRIPT_NAME
943
+      echo "$USB_MOUNT/backup/owncloud.sql" >> /usr/bin/$RESTORE_SCRIPT_NAME
900 944
       echo '  echo "Restoring Owncloud installation"' >> /usr/bin/$RESTORE_SCRIPT_NAME
901 945
       echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/owncloud /var/www/$OWNCLOUD_DOMAIN_NAME/htdocs $USB_MOUNT/backup/owncloud.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
902 946
       echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
@@ -923,7 +967,7 @@ function create_restore_script {
923 967
   echo "rm -rf /home/$MY_USERNAME/tempfiles" >> /usr/bin/$RESTORE_SCRIPT_NAME
924 968
   echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
925 969
 
926
-  echo "if [ -d /home/$MY_USERNAME/Maildir ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
970
+  echo "if [ -d $USB_MOUNT/backup/mail ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
927 971
   echo '  echo "Restoring emails"' >> /usr/bin/$RESTORE_SCRIPT_NAME
928 972
   echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/mail /home/$MY_USERNAME/Maildir $USB_MOUNT/backup/mail.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
929 973
   echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME