瀏覽代碼

Get default USB drive from config file

Bob Mottram 9 年之前
父節點
當前提交
e42e952a12
共有 3 個檔案被更改,包括 670 行新增646 行删除
  1. 8
    0
      src/freedombone-backup-local
  2. 103
    95
      src/freedombone-restore-hubzilla
  3. 559
    551
      src/freedombone-restore-local

+ 8
- 0
src/freedombone-backup-local 查看文件

@@ -37,6 +37,14 @@ export TEXTDOMAINDIR="/usr/share/locale"
37 37
 USB_DRIVE=/dev/sdb1
38 38
 USB_MOUNT=/mnt/usb
39 39
 
40
+# get default USB from config file
41
+CONFIG_FILE=$HOME/${PROJECT_NAME}.cfg
42
+if [ -f $CONFIG_FILE ]; then
43
+    if grep -q "USB_DRIVE=" $CONFIG_FILE; then
44
+        USB_DRIVE=$(cat $CONFIG_FILE | grep "USB_DRIVE=" | awk -F '=' '{print $2}')
45
+    fi
46
+fi
47
+
40 48
 ADMIN_USERNAME=
41 49
 ADMIN_NAME=
42 50
 

+ 103
- 95
src/freedombone-restore-hubzilla 查看文件

@@ -36,46 +36,54 @@ export TEXTDOMAINDIR="/usr/share/locale"
36 36
 
37 37
 USB_DRIVE=/dev/sdb1
38 38
 if [ $1 ]; then
39
-	USB_DRIVE=/dev/${1}1
39
+    USB_DRIVE=/dev/${1}1
40 40
 fi
41 41
 USB_MOUNT=/mnt/usb
42 42
 
43
+# get default USB from config file
44
+CONFIG_FILE=$HOME/${PROJECT_NAME}.cfg
45
+if [ -f $CONFIG_FILE ]; then
46
+    if grep -q "USB_DRIVE=" $CONFIG_FILE; then
47
+        USB_DRIVE=$(cat $CONFIG_FILE | grep "USB_DRIVE=" | awk -F '=' '{print $2}')
48
+    fi
49
+fi
50
+
43 51
 # Get the admin username
44 52
 ADMIN_USERNAME=$(cat $COMPLETION_FILE | grep "Admin user" | awk -F ':' '{print $2}')
45 53
 if [ $2 ]; then
46
-	ADMIN_USERNAME=$2
54
+    ADMIN_USERNAME=$2
47 55
 fi
48 56
 
49 57
 if [ ! -b $USB_DRIVE ]; then
50
-	echo $"Please attach a USB drive"
51
-	exit 1
58
+    echo $"Please attach a USB drive"
59
+    exit 1
52 60
 fi
53 61
 
54 62
 if [ ! -d $USB_MOUNT ]; then
55
-	mkdir $USB_MOUNT
56
-	if [ -f /dev/mapper/encrypted_usb ]; then
57
-		rm -rf /dev/mapper/encrypted_usb
58
-	fi
59
-	cryptsetup luksClose encrypted_usb
60
-	cryptsetup luksOpen $USB_DRIVE encrypted_usb
61
-	if [ "$?" = "0" ]; then
62
-		USB_DRIVE=/dev/mapper/encrypted_usb
63
-	fi
64
-	mount $USB_DRIVE $USB_MOUNT
63
+    mkdir $USB_MOUNT
64
+    if [ -f /dev/mapper/encrypted_usb ]; then
65
+        rm -rf /dev/mapper/encrypted_usb
66
+    fi
67
+    cryptsetup luksClose encrypted_usb
68
+    cryptsetup luksOpen $USB_DRIVE encrypted_usb
69
+    if [ "$?" = "0" ]; then
70
+        USB_DRIVE=/dev/mapper/encrypted_usb
71
+    fi
72
+    mount $USB_DRIVE $USB_MOUNT
65 73
 fi
66 74
 if [ ! -d $USB_MOUNT/backup ]; then
67
-	echo $"No backup directory found on the USB drive."
68
-	umount $USB_MOUNT
69
-	rm -rf $USB_MOUNT
70
-	exit 2
75
+    echo $"No backup directory found on the USB drive."
76
+    umount $USB_MOUNT
77
+    rm -rf $USB_MOUNT
78
+    exit 2
71 79
 fi
72 80
 
73 81
 echo $"Checking that admin user exists"
74 82
 if [ ! -d /home/$ADMIN_USERNAME ]; then
75
-	echo $"Username $ADMIN_USERNAME not found. Reinstall ${PROJECT_NAME} with this username."
76
-	umount $USB_MOUNT
77
-	rm -rf $USB_MOUNT
78
-	exit 295
83
+    echo $"Username $ADMIN_USERNAME not found. Reinstall ${PROJECT_NAME} with this username."
84
+    umount $USB_MOUNT
85
+    rm -rf $USB_MOUNT
86
+    exit 295
79 87
 fi
80 88
 
81 89
 echo $"Copying GPG keys to root"
@@ -85,80 +93,80 @@ cp -r /home/$ADMIN_USERNAME/.gnupg /root
85 93
 DATABASE_PASSWORD=$(cat /root/dbpass)
86 94
 
87 95
 function restore_directory_from_usb {
88
-	BACKUP_CERTIFICATE=/etc/ssl/private/backup.key
89
-	if [ ! -d ${1} ]; then
90
-		mkdir ${1}
91
-	fi
92
-	obnam restore -r $USB_MOUNT/backup/${2} --to ${1}
96
+    BACKUP_CERTIFICATE=/etc/ssl/private/backup.key
97
+    if [ ! -d ${1} ]; then
98
+        mkdir ${1}
99
+    fi
100
+    obnam restore -r $USB_MOUNT/backup/${2} --to ${1}
93 101
 }
94 102
 
95 103
 function restore_database {
96
-	RESTORE_SUBDIR="root"
97
-
98
-	if [ -d $USB_MOUNT/backup/${1} ]; then
99
-		echo $"Restoring ${1} database"
100
-		restore_directory_from_usb "/root/temp${1}data" "${1}data"
101
-		if [ ! -f /root/temp${1}data/${RESTORE_SUBDIR}/temp${1}data/${1}.sql ]; then
102
-			echo $"Unable to restore ${1} database"
103
-			rm -rf /root/temp${1}data
104
-			umount $USB_MOUNT
105
-			rm -rf $USB_MOUNT
106
-			exit 503
107
-		fi
108
-		mysqlsuccess=$(mysql -u root --password=$DATABASE_PASSWORD ${1} -o < /root/temp${1}data/${RESTORE_SUBDIR}/temp${1}data/${1}.sql)
109
-		if [ ! "$?" = "0" ]; then
110
-			echo "$mysqlsuccess"
111
-			umount $USB_MOUNT
112
-			rm -rf $USB_MOUNT
113
-			exit 964
114
-		fi
115
-		shred -zu /root/temp${1}data/${RESTORE_SUBDIR}/temp${1}data/*
116
-		rm -rf /root/temp${1}data
117
-		echo $"Restoring ${1} installation"
118
-		if [ ! -d /root/temp${1} ]; then
119
-			mkdir /root/temp${1}
120
-		fi
121
-		restore_directory_from_usb "/root/temp${1}" "${1}"
122
-		RESTORE_SUBDIR="var"
123
-		if [ ${2} ]; then
124
-			if [ -d /var/www/${2}/htdocs ]; then
125
-				if [ -d /root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs ]; then
126
-					rm -rf /var/www/${2}/htdocs
127
-					mv /root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs /var/www/${2}/
128
-					if [ ! "$?" = "0" ]; then
129
-						umount $USB_MOUNT
130
-						rm -rf $USB_MOUNT
131
-						exit 683
132
-					fi
133
-					if [ -d /etc/letsencrypt/live/${2} ]; then
134
-						ln -s /etc/letsencrypt/live/${2}/privkey.pem /etc/ssl/private/${2}.key
135
-						ln -s /etc/letsencrypt/live/${2}/fullchain.pem /etc/ssl/certs/${2}.pem
136
-					else
137
-						# Ensure that the bundled SSL cert is being used
138
-						if [ -f /etc/ssl/certs/${2}.bundle.crt ]; then
139
-							sed -i "s|${2}.crt|${2}.bundle.crt|g" /etc/nginx/sites-available/${2}
140
-						fi
141
-					fi
142
-				fi
143
-			fi
144
-		fi
145
-	fi
104
+    RESTORE_SUBDIR="root"
105
+
106
+    if [ -d $USB_MOUNT/backup/${1} ]; then
107
+        echo $"Restoring ${1} database"
108
+        restore_directory_from_usb "/root/temp${1}data" "${1}data"
109
+        if [ ! -f /root/temp${1}data/${RESTORE_SUBDIR}/temp${1}data/${1}.sql ]; then
110
+            echo $"Unable to restore ${1} database"
111
+            rm -rf /root/temp${1}data
112
+            umount $USB_MOUNT
113
+            rm -rf $USB_MOUNT
114
+            exit 503
115
+        fi
116
+        mysqlsuccess=$(mysql -u root --password=$DATABASE_PASSWORD ${1} -o < /root/temp${1}data/${RESTORE_SUBDIR}/temp${1}data/${1}.sql)
117
+        if [ ! "$?" = "0" ]; then
118
+            echo "$mysqlsuccess"
119
+            umount $USB_MOUNT
120
+            rm -rf $USB_MOUNT
121
+            exit 964
122
+        fi
123
+        shred -zu /root/temp${1}data/${RESTORE_SUBDIR}/temp${1}data/*
124
+        rm -rf /root/temp${1}data
125
+        echo $"Restoring ${1} installation"
126
+        if [ ! -d /root/temp${1} ]; then
127
+            mkdir /root/temp${1}
128
+        fi
129
+        restore_directory_from_usb "/root/temp${1}" "${1}"
130
+        RESTORE_SUBDIR="var"
131
+        if [ ${2} ]; then
132
+            if [ -d /var/www/${2}/htdocs ]; then
133
+                if [ -d /root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs ]; then
134
+                    rm -rf /var/www/${2}/htdocs
135
+                    mv /root/temp${1}/${RESTORE_SUBDIR}/www/${2}/htdocs /var/www/${2}/
136
+                    if [ ! "$?" = "0" ]; then
137
+                        umount $USB_MOUNT
138
+                        rm -rf $USB_MOUNT
139
+                        exit 683
140
+                    fi
141
+                    if [ -d /etc/letsencrypt/live/${2} ]; then
142
+                        ln -s /etc/letsencrypt/live/${2}/privkey.pem /etc/ssl/private/${2}.key
143
+                        ln -s /etc/letsencrypt/live/${2}/fullchain.pem /etc/ssl/certs/${2}.pem
144
+                    else
145
+                        # Ensure that the bundled SSL cert is being used
146
+                        if [ -f /etc/ssl/certs/${2}.bundle.crt ]; then
147
+                            sed -i "s|${2}.crt|${2}.bundle.crt|g" /etc/nginx/sites-available/${2}
148
+                        fi
149
+                    fi
150
+                fi
151
+            fi
152
+        fi
153
+    fi
146 154
 }
147 155
 
148 156
 # Restoring hubzilla
149 157
 if grep -q "Hubzilla domain" $COMPLETION_FILE; then
150 158
     HUBZILLA_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Hubzilla domain" | awk -F ':' '{print $2}')
151
-	restore_database hubzilla ${HUBZILLA_DOMAIN_NAME}
152
-	if [ -d $USB_MOUNT/backup/hubzilla ]; then
153
-		if [ ! -d /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/store/[data]/smarty3 ]; then
154
-			mkdir -p /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/store/[data]/smarty3
155
-		fi
156
-		chmod 777 /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/store/[data]/smarty3
157
-		chown -R www-data:www-data /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/*
158
-		if [ -d /root/temphubzilla ]; then
159
-			rm -rf /root/temphubzilla
160
-		fi
161
-	fi
159
+    restore_database hubzilla ${HUBZILLA_DOMAIN_NAME}
160
+    if [ -d $USB_MOUNT/backup/hubzilla ]; then
161
+        if [ ! -d /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/store/[data]/smarty3 ]; then
162
+            mkdir -p /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/store/[data]/smarty3
163
+        fi
164
+        chmod 777 /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/store/[data]/smarty3
165
+        chown -R www-data:www-data /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/*
166
+        if [ -d /root/temphubzilla ]; then
167
+            rm -rf /root/temphubzilla
168
+        fi
169
+    fi
162 170
 fi
163 171
 
164 172
 sync
@@ -173,18 +181,18 @@ systemctl restart php5-fpm
173 181
 
174 182
 echo $"Setting permissions"
175 183
 for d in /home/*/ ; do
176
-	USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
177
-	if [[ $USERNAME != "git" ]]; then
178
-		chown -R $USERNAME:$USERNAME /home/$USERNAME
179
-	fi
184
+    USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
185
+    if [[ $USERNAME != "git" ]]; then
186
+        chown -R $USERNAME:$USERNAME /home/$USERNAME
187
+    fi
180 188
 done
181 189
 
182 190
 if [[ $USB_DRIVE == /dev/mapper/encrypted_usb ]]; then
183
-	echo $"Unmount encrypted USB"
184
-	cryptsetup luksClose encrypted_usb
191
+    echo $"Unmount encrypted USB"
192
+    cryptsetup luksClose encrypted_usb
185 193
 fi
186 194
 if [ -f /dev/mapper/encrypted_usb ]; then
187
-	rm -rf /dev/mapper/encrypted_usb
195
+    rm -rf /dev/mapper/encrypted_usb
188 196
 fi
189 197
 
190 198
 echo $"Hubzilla Restore from USB drive is complete. You can now remove it."

+ 559
- 551
src/freedombone-restore-local
文件差異過大導致無法顯示
查看文件