Kaynağa Gözat

Tidying database utils

Bob Mottram 7 yıl önce
ebeveyn
işleme
feca89a19f
1 değiştirilmiş dosya ile 130 ekleme ve 128 silme
  1. 130
    128
      src/freedombone-utils-database

+ 130
- 128
src/freedombone-utils-database Dosyayı Görüntüle

37
 function store_original_mariadb_password {
37
 function store_original_mariadb_password {
38
     if [ ! -f /root/.mariadboriginal ]; then
38
     if [ ! -f /root/.mariadboriginal ]; then
39
         echo $'Storing original mariadb password'
39
         echo $'Storing original mariadb password'
40
-        ORIGINAL_MARIADB_PASSWORD=$(${PROJECT_NAME}-pass -u root -a mariadb)
40
+        ORIGINAL_MARIADB_PASSWORD=$("${PROJECT_NAME}-pass" -u root -a mariadb)
41
         # We can store this in plaintext because it will soon be of historical interest only
41
         # We can store this in plaintext because it will soon be of historical interest only
42
         echo -n "$ORIGINAL_MARIADB_PASSWORD" > /root/.mariadboriginal
42
         echo -n "$ORIGINAL_MARIADB_PASSWORD" > /root/.mariadboriginal
43
     fi
43
     fi
44
 }
44
 }
45
 
45
 
46
 function keep_database_running {
46
 function keep_database_running {
47
-    if [ ! $(daemon_is_running mariadb) ]; then
47
+    if [ ! "$(daemon_is_running mariadb)" ]; then
48
         systemctl start mariadb
48
         systemctl start mariadb
49
     fi
49
     fi
50
 }
50
 }
65
 
65
 
66
     backup_databases_script=/usr/bin/backupdatabases
66
     backup_databases_script=/usr/bin/backupdatabases
67
     if ! grep -q "# Check database daemon" /usr/bin/backupdatabases; then
67
     if ! grep -q "# Check database daemon" /usr/bin/backupdatabases; then
68
-        echo '' >> /usr/bin/backupdatabases
69
-        echo '# Check database daemon is running' >> /usr/bin/backupdatabases
70
-        echo 'if [ ! $(systemctl is-active mariadb >/dev/null 2>&1 && echo Running) ]; then' >> /usr/bin/backupdatabases
71
-        echo '    systemctl start mariadb' >> /usr/bin/backupdatabases
72
-        echo 'fi' >> /usr/bin/backupdatabases
73
-        echo '' >> /usr/bin/backupdatabases
68
+        { echo '';
69
+          echo '# Check database daemon is running';
70
+          echo "if [ ! \$(systemctl is-active mariadb >/dev/null 2>&1 && echo Running) ]; then";
71
+          echo '    systemctl start mariadb';
72
+          echo 'fi';
73
+          echo ''; } >> /usr/bin/backupdatabases
74
     fi
74
     fi
75
 
75
 
76
     if ! grep -q "# Backup the ${database_name} database" $backup_databases_script; then
76
     if ! grep -q "# Backup the ${database_name} database" $backup_databases_script; then
77
-        echo "# Backup the ${database_name} database" >> $backup_databases_script
78
-        echo "TEMPFILE=/root/${database_name}.sql" >> $backup_databases_script
79
-        echo "DAILYFILE=/var/backups/${database_name}_daily.sql" >> $backup_databases_script
80
-        echo "mysqldump --password=\"\$MYSQL_PASSWORD\" ${database_name} > \$TEMPFILE" >> $backup_databases_script
81
-        echo 'FILESIZE=$(stat -c%s $TEMPFILE)' >> $backup_databases_script
82
-        echo 'if [ "$FILESIZE" -eq "0" ]; then' >> $backup_databases_script
83
-        echo '    if [ -f $DAILYFILE ]; then' >> $backup_databases_script
84
-        echo '        cp $DAILYFILE $TEMPFILE' >> $backup_databases_script
85
-        echo '' >> $backup_databases_script
86
-        echo '        # try to restore yesterdays database' >> $backup_databases_script
87
-        echo "        mysql -u root --password=\"\$MYSQL_PASSWORD\" ${database_name} -o < \$DAILYFILE" >> $backup_databases_script
88
-        echo '' >> $backup_databases_script
89
-        echo '        # Send a warning email' >> $backup_databases_script
90
-        echo "        echo \"Unable to create a backup of the ${database_name} database. Attempted to restore from yesterdays backup\" | mail -s \"${database_name} backup\" \$EMAIL" >> $backup_databases_script
91
-        echo '    else' >> $backup_databases_script
92
-        echo '        # Send a warning email' >> $backup_databases_script
93
-        echo "        echo \"Unable to create a backup of the ${database_name} database.\" | mail -s \"${database_name} backup\" \$EMAIL" >> $backup_databases_script
94
-        echo '    fi' >> $backup_databases_script
95
-        echo 'else' >> $backup_databases_script
96
-        echo '    chmod 600 $TEMPFILE' >> $backup_databases_script
97
-        echo '    mv $TEMPFILE $DAILYFILE' >> $backup_databases_script
98
-        echo '' >> $backup_databases_script
99
-        echo '    # Make the backup readable only by root' >> $backup_databases_script
100
-        echo '    chmod 600 $DAILYFILE' >> $backup_databases_script
101
-        echo 'fi' >> $backup_databases_script
102
-        echo "# End of ${database_name} database backup" >> $backup_databases_script
77
+        { echo "# Backup the ${database_name} database";
78
+          echo "TEMPFILE=/root/${database_name}.sql";
79
+          echo "DAILYFILE=/var/backups/${database_name}_daily.sql";
80
+          echo "mysqldump --password=\"\$MYSQL_PASSWORD\" ${database_name} > \$TEMPFILE";
81
+          echo "FILESIZE=\$(stat -c%s \$TEMPFILE)";
82
+          echo "if [ \"\$FILESIZE\" -eq \"0\" ]; then";
83
+          echo "    if [ -f \$DAILYFILE ]; then";
84
+          echo "        cp \$DAILYFILE \$TEMPFILE";
85
+          echo '';
86
+          echo '        # try to restore yesterdays database';
87
+          echo "        mysql -u root --password=\"\$MYSQL_PASSWORD\" ${database_name} -o < \$DAILYFILE";
88
+          echo '';
89
+          echo '        # Send a warning email';
90
+          echo "        echo \"Unable to create a backup of the ${database_name} database. Attempted to restore from yesterdays backup\" | mail -s \"${database_name} backup\" \$EMAIL";
91
+          echo '    else';
92
+          echo '        # Send a warning email';
93
+          echo "        echo \"Unable to create a backup of the ${database_name} database.\" | mail -s \"${database_name} backup\" \$EMAIL";
94
+          echo '    fi';
95
+          echo 'else';
96
+          echo "    chmod 600 \$TEMPFILE";
97
+          echo "    mv \$TEMPFILE \$DAILYFILE";
98
+          echo '';
99
+          echo '    # Make the backup readable only by root';
100
+          echo "    chmod 600 \$DAILYFILE";
101
+          echo 'fi';
102
+          echo "# End of ${database_name} database backup"; } >> $backup_databases_script
103
     fi
103
     fi
104
 
104
 
105
     weekly_backup_script=/etc/cron.weekly/backupdatabasesweekly
105
     weekly_backup_script=/etc/cron.weekly/backupdatabasesweekly
106
     if ! grep -q "Backup ${database_name}" ${weekly_backup_script}; then
106
     if ! grep -q "Backup ${database_name}" ${weekly_backup_script}; then
107
-        echo "# Backup ${database_name}" >> ${weekly_backup_script}
108
-        echo "if [ -f /var/backups/${database_name}_weekly.sql ]; then" >> ${weekly_backup_script}
109
-        echo "  cp -f /var/backups/${database_name}_weekly.sql /var/backups/${database_name}_2weekly.sql" >> ${weekly_backup_script}
110
-        echo 'fi' >> ${weekly_backup_script}
111
-        echo "if [ -f /var/backups/${database_name}_daily.sql ]; then" >> ${weekly_backup_script}
112
-        echo "  cp -f /var/backups/${database_name}_daily.sql /var/backups/${database_name}_weekly.sql" >> ${weekly_backup_script}
113
-        echo 'fi' >> ${weekly_backup_script}
114
-        echo "# End of backup for ${database_name}" >> ${weekly_backup_script}
107
+        { echo "# Backup ${database_name}";
108
+          echo "if [ -f /var/backups/${database_name}_weekly.sql ]; then";
109
+          echo "  cp -f /var/backups/${database_name}_weekly.sql /var/backups/${database_name}_2weekly.sql";
110
+          echo 'fi';
111
+          echo "if [ -f /var/backups/${database_name}_daily.sql ]; then";
112
+          echo "  cp -f /var/backups/${database_name}_daily.sql /var/backups/${database_name}_weekly.sql";
113
+          echo 'fi';
114
+          echo "# End of backup for ${database_name}"; } >> ${weekly_backup_script}
115
     fi
115
     fi
116
 
116
 
117
     monthly_backup_script=/etc/cron.monthly/backupdatabasesmonthly
117
     monthly_backup_script=/etc/cron.monthly/backupdatabasesmonthly
118
     if ! grep -q "Backup ${database_name}" ${monthly_backup_script}; then
118
     if ! grep -q "Backup ${database_name}" ${monthly_backup_script}; then
119
-        echo "# Backup ${database_name}" >> ${monthly_backup_script}
120
-        echo "if [ -f /var/backups/${database_name}_monthly.sql ]; then" >> ${monthly_backup_script}
121
-        echo "  cp -f /var/backups/${database_name}_monthly.sql /var/backups/${database_name}_2monthly.sql" >> ${monthly_backup_script}
122
-        echo 'fi' >> ${monthly_backup_script}
123
-        echo "if [ -f /var/backups/${database_name}_weekly.sql ]; then" >> ${monthly_backup_script}
124
-        echo "  cp -f /var/backups/${database_name}_weekly.sql /var/backups/${database_name}_monthly.sql" >> ${monthly_backup_script}
125
-        echo 'fi' >> ${monthly_backup_script}
126
-        echo "# End of backup for ${database_name}" >> ${monthly_backup_script}
119
+        { echo "# Backup ${database_name}";
120
+          echo "if [ -f /var/backups/${database_name}_monthly.sql ]; then";
121
+          echo "  cp -f /var/backups/${database_name}_monthly.sql /var/backups/${database_name}_2monthly.sql";
122
+          echo 'fi';
123
+          echo "if [ -f /var/backups/${database_name}_weekly.sql ]; then";
124
+          echo "  cp -f /var/backups/${database_name}_weekly.sql /var/backups/${database_name}_monthly.sql";
125
+          echo 'fi';
126
+          echo "# End of backup for ${database_name}"; } >> ${monthly_backup_script}
127
     fi
127
     fi
128
 
128
 
129
     if ! grep -q "${database_name}" /etc/cron.hourly/repair; then
129
     if ! grep -q "${database_name}" /etc/cron.hourly/repair; then
138
     DATABASE_PASSWORD_FILE=/root/dbpass
138
     DATABASE_PASSWORD_FILE=/root/dbpass
139
     if [ -f $DATABASE_PASSWORD_FILE ]; then
139
     if [ -f $DATABASE_PASSWORD_FILE ]; then
140
         MARIADB_PASSWORD=$(cat $DATABASE_PASSWORD_FILE)
140
         MARIADB_PASSWORD=$(cat $DATABASE_PASSWORD_FILE)
141
-        ${PROJECT_NAME}-pass -u root -a mariadb -p "$MARIADB_PASSWORD"
142
-        stored_password=$(${PROJECT_NAME}-pass -u root -a mariadb)
141
+        "${PROJECT_NAME}-pass" -u root -a mariadb -p "$MARIADB_PASSWORD"
142
+        stored_password=$("${PROJECT_NAME}-pass" -u root -a mariadb)
143
         if [[ "$stored_password" == "$MARIADB_PASSWORD" ]]; then
143
         if [[ "$stored_password" == "$MARIADB_PASSWORD" ]]; then
144
             shred -zu $DATABASE_PASSWORD_FILE
144
             shred -zu $DATABASE_PASSWORD_FILE
145
             echo $'MariaDB password moved into password store'
145
             echo $'MariaDB password moved into password store'
146
             return
146
             return
147
         fi
147
         fi
148
     fi
148
     fi
149
-    MARIADB_PASSWORD=$(${PROJECT_NAME}-pass -u root -a mariadb)
149
+    MARIADB_PASSWORD=$("${PROJECT_NAME}-pass" -u root -a mariadb)
150
     if [[ "$MARIADB_PASSWORD" == *'failed'* ]]; then
150
     if [[ "$MARIADB_PASSWORD" == *'failed'* ]]; then
151
         echo $'Could not obtain mariadb password'
151
         echo $'Could not obtain mariadb password'
152
         exit 835225
152
         exit 835225
155
 
155
 
156
 function mariadb_kill_stone_dead {
156
 function mariadb_kill_stone_dead {
157
     systemctl stop mariadb
157
     systemctl stop mariadb
158
-    kill_pid=$(ps aux | grep mysqld_safe | awk -F ' ' '{print $2}' | head -n 1)
159
-    kill -9 $kill_pid
160
-    kill_pid=$(ps aux | grep mysqld | awk -F ' ' '{print $2}' | head -n 1)
161
-    kill -9 $kill_pid
162
-    kill_pid=$(ps aux | grep mysqld | awk -F ' ' '{print $2}' | head -n 1)
163
-    kill -9 $kill_pid
158
+    kill_pid=$(pgrep mysqld_safe | head -n 1)
159
+    kill -9 "$kill_pid"
160
+    kill_pid=$(pgrep mysqld | head -n 1)
161
+    kill -9 "$kill_pid"
162
+    kill_pid=$(pgrep mysqld | head -n 1)
163
+    kill -9 "$kill_pid"
164
 }
164
 }
165
 
165
 
166
 function mariadb_fix_authentication {
166
 function mariadb_fix_authentication {
201
 
201
 
202
     function_check get_mariadb_password
202
     function_check get_mariadb_password
203
     get_mariadb_password
203
     get_mariadb_password
204
-    if [ ! $MARIADB_PASSWORD ]; then
205
-        if [ -f $IMAGE_PASSWORD_FILE ]; then
206
-            MARIADB_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
204
+    if [ ! "$MARIADB_PASSWORD" ]; then
205
+        if [ -f "$IMAGE_PASSWORD_FILE" ]; then
206
+            passfile="$(cat "$IMAGE_PASSWORD_FILE")"
207
+            MARIADB_PASSWORD="$(printf "%s" "$passfile")"
207
         else
208
         else
208
-            MARIADB_PASSWORD="$(openssl rand -base64 32 | cut -c1-${MINIMUM_PASSWORD_LENGTH})"
209
+            MARIADB_PASSWORD=$(create_password "${MINIMUM_PASSWORD_LENGTH}")
209
         fi
210
         fi
210
     fi
211
     fi
211
-    ${PROJECT_NAME}-pass -u root -a mariadb -p "$MARIADB_PASSWORD"
212
+    "${PROJECT_NAME}-pass" -u root -a mariadb -p "$MARIADB_PASSWORD"
212
 
213
 
213
     debconf-set-selections <<< "mariadb-server mariadb-server/root_password password $MARIADB_PASSWORD"
214
     debconf-set-selections <<< "mariadb-server mariadb-server/root_password password $MARIADB_PASSWORD"
214
     debconf-set-selections <<< "mariadb-server mariadb-server/root_password_again password $MARIADB_PASSWORD"
215
     debconf-set-selections <<< "mariadb-server mariadb-server/root_password_again password $MARIADB_PASSWORD"
243
 function backup_databases_script_header {
244
 function backup_databases_script_header {
244
     if [ ! -f /usr/bin/backupdatabases ]; then
245
     if [ ! -f /usr/bin/backupdatabases ]; then
245
         # daily
246
         # daily
246
-        echo '#!/bin/sh' > /usr/bin/backupdatabases
247
-        echo '' >> /usr/bin/backupdatabases
248
-        echo "EMAIL='$MY_EMAIL_ADDRESS'" >> /usr/bin/backupdatabases
249
-        echo '' >> /usr/bin/backupdatabases
250
-        echo "MYSQL_PASSWORD=\$(${PROJECT_NAME}-pass -u root -a mariadb)" >> /usr/bin/backupdatabases
251
-        echo 'umask 0077' >> /usr/bin/backupdatabases
252
-        echo '' >> /usr/bin/backupdatabases
253
-        echo '# exit if we are backing up to friends servers' >> /usr/bin/backupdatabases
254
-        echo "if [ -f $FRIENDS_SERVERS_LIST ]; then" >> /usr/bin/backupdatabases
255
-        echo '  exit 1' >> /usr/bin/backupdatabases
256
-        echo 'fi' >> /usr/bin/backupdatabases
247
+        { echo '#!/bin/sh';
248
+          echo '';
249
+          echo "EMAIL='$MY_EMAIL_ADDRESS'";
250
+          echo '';
251
+          echo "MYSQL_PASSWORD=\$(${PROJECT_NAME}-pass -u root -a mariadb)";
252
+          echo 'umask 0077';
253
+          echo '';
254
+          echo '# exit if we are backing up to friends servers';
255
+          echo "if [ -f $FRIENDS_SERVERS_LIST ]; then";
256
+          echo '  exit 1';
257
+          echo 'fi'; } > /usr/bin/backupdatabases
257
         chmod 600 /usr/bin/backupdatabases
258
         chmod 600 /usr/bin/backupdatabases
258
         chmod +x /usr/bin/backupdatabases
259
         chmod +x /usr/bin/backupdatabases
259
 
260
 
260
-        echo '#!/bin/sh' > /etc/cron.daily/backupdatabasesdaily
261
-        echo '/usr/bin/backupdatabases' >> /etc/cron.daily/backupdatabasesdaily
261
+        { echo '#!/bin/sh';
262
+          echo '/usr/bin/backupdatabases'; } > /etc/cron.daily/backupdatabasesdaily
262
         chmod 600 /etc/cron.daily/backupdatabasesdaily
263
         chmod 600 /etc/cron.daily/backupdatabasesdaily
263
         chmod +x /etc/cron.daily/backupdatabasesdaily
264
         chmod +x /etc/cron.daily/backupdatabasesdaily
264
 
265
 
265
         # weekly
266
         # weekly
266
-        echo '#!/bin/sh' > /etc/cron.weekly/backupdatabasesweekly
267
-        echo '' >> /etc/cron.weekly/backupdatabasesweekly
268
-        echo 'umask 0077' >> /etc/cron.weekly/backupdatabasesweekly
267
+        { echo '#!/bin/sh';
268
+          echo '';
269
+          echo 'umask 0077'; } > /etc/cron.weekly/backupdatabasesweekly
269
 
270
 
270
         chmod 600 /etc/cron.weekly/backupdatabasesweekly
271
         chmod 600 /etc/cron.weekly/backupdatabasesweekly
271
         chmod +x /etc/cron.weekly/backupdatabasesweekly
272
         chmod +x /etc/cron.weekly/backupdatabasesweekly
272
 
273
 
273
         # monthly
274
         # monthly
274
-        echo '#!/bin/sh' > /etc/cron.monthly/backupdatabasesmonthly
275
-        echo '' >> /etc/cron.monthly/backupdatabasesmonthly
276
-        echo 'umask 0077' >> /etc/cron.monthly/backupdatabasesmonthly
275
+        { echo '#!/bin/sh';
276
+          echo '';
277
+          echo 'umask 0077'; } > /etc/cron.monthly/backupdatabasesmonthly
277
 
278
 
278
         chmod 600 /etc/cron.monthly/backupdatabasesmonthly
279
         chmod 600 /etc/cron.monthly/backupdatabasesmonthly
279
         chmod +x /etc/cron.monthly/backupdatabasesmonthly
280
         chmod +x /etc/cron.monthly/backupdatabasesmonthly
289
         return
290
         return
290
     fi
291
     fi
291
 
292
 
292
-    db_pass=$(${PROJECT_NAME}-pass -u root -p mariadb)
293
+    db_pass=$("${PROJECT_NAME}-pass" -u root -p mariadb)
293
     if [[ "$db_pass" == 'Error:'* ]]; then
294
     if [[ "$db_pass" == 'Error:'* ]]; then
294
         return
295
         return
295
     fi
296
     fi
304
 
305
 
305
 function remove_database {
306
 function remove_database {
306
     app_name="$1"
307
     app_name="$1"
307
-    if [ ! -d $INSTALL_DIR ]; then
308
-        mkdir $INSTALL_DIR
308
+    if [ ! -d "$INSTALL_DIR" ]; then
309
+        mkdir "$INSTALL_DIR"
309
     fi
310
     fi
310
     echo "drop database ${app_name};
311
     echo "drop database ${app_name};
311
-quit" > $INSTALL_DIR/batch.sql
312
-    chmod 600 $INSTALL_DIR/batch.sql
312
+quit" > "$INSTALL_DIR/batch.sql"
313
+    chmod 600 "$INSTALL_DIR/batch.sql"
313
     keep_database_running
314
     keep_database_running
314
-    mysql -u root --password="$MARIADB_PASSWORD" < $INSTALL_DIR/batch.sql
315
-    shred -zu $INSTALL_DIR/batch.sql
315
+    mysql -u root --password="$MARIADB_PASSWORD" < "$INSTALL_DIR/batch.sql"
316
+    shred -zu "$INSTALL_DIR/batch.sql"
316
 }
317
 }
317
 
318
 
318
 function initialise_database {
319
 function initialise_database {
319
     database_name=$1
320
     database_name=$1
320
     database_file=$2
321
     database_file=$2
321
     keep_database_running
322
     keep_database_running
322
-    mysql -u root --password="$MARIADB_PASSWORD" -D $database_name < $database_file
323
+    mysql -u root --password="$MARIADB_PASSWORD" -D "$database_name" < "$database_file"
324
+    # shellcheck disable=SC2181
323
     if [ ! "$?" = "0" ]; then
325
     if [ ! "$?" = "0" ]; then
324
         exit 62952
326
         exit 62952
325
     fi
327
     fi
329
     database_name=$1
331
     database_name=$1
330
     database_query=$2
332
     database_query=$2
331
     keep_database_running
333
     keep_database_running
332
-    mysql -u root --password="$MARIADB_PASSWORD" -e "$database_query" $database_name
334
+    mysql -u root --password="$MARIADB_PASSWORD" -e "$database_query" "$database_name"
333
 }
335
 }
334
 
336
 
335
 function run_query_root {
337
 function run_query_root {
336
     database_name=$1
338
     database_name=$1
337
     database_query=$2
339
     database_query=$2
338
     keep_database_running
340
     keep_database_running
339
-    mysql -e "$database_query" $database_name
341
+    mysql -e "$database_query" "$database_name"
340
 }
342
 }
341
 
343
 
342
 function create_database {
344
 function create_database {
343
     app_name="$1"
345
     app_name="$1"
344
     app_admin_password="$2"
346
     app_admin_password="$2"
345
     app_admin_username=$3
347
     app_admin_username=$3
346
-    if [ ! -d $INSTALL_DIR ]; then
347
-        mkdir $INSTALL_DIR
348
+    if [ ! -d "$INSTALL_DIR" ]; then
349
+        mkdir "$INSTALL_DIR"
348
     fi
350
     fi
349
-    if [ ! $app_admin_username ]; then
350
-        app_admin_username=${app_name}admin
351
+    if [ ! "$app_admin_username" ]; then
352
+        app_admin_username="${app_name}admin"
351
     fi
353
     fi
352
 
354
 
353
     echo "create database ${app_name};
355
     echo "create database ${app_name};
355
 update mysql.user set plugin = '' where User='$app_admin_username@localhost';
357
 update mysql.user set plugin = '' where User='$app_admin_username@localhost';
356
 GRANT ALL PRIVILEGES ON ${app_name}.* TO '$app_admin_username@localhost';
358
 GRANT ALL PRIVILEGES ON ${app_name}.* TO '$app_admin_username@localhost';
357
 flush privileges;
359
 flush privileges;
358
-quit" > $INSTALL_DIR/batch.sql
359
-    chmod 600 $INSTALL_DIR/batch.sql
360
+quit" > "$INSTALL_DIR/batch.sql"
361
+    chmod 600 "$INSTALL_DIR/batch.sql"
360
     keep_database_running
362
     keep_database_running
361
-    mysql -u root --password="$MARIADB_PASSWORD" < $INSTALL_DIR/batch.sql
362
-    shred -zu $INSTALL_DIR/batch.sql
363
+    mysql -u root --password="$MARIADB_PASSWORD" < "$INSTALL_DIR/batch.sql"
364
+    shred -zu "$INSTALL_DIR/batch.sql"
363
 }
365
 }
364
 
366
 
365
 function run_query_with_output {
367
 function run_query_with_output {
381
 
383
 
382
     echo "drop database ${app_name};
384
     echo "drop database ${app_name};
383
 flush privileges;
385
 flush privileges;
384
-quit" > $INSTALL_DIR/batch.sql
385
-    chmod 600 $INSTALL_DIR/batch.sql
386
+quit" > "$INSTALL_DIR/batch.sql"
387
+    chmod 600 "$INSTALL_DIR/batch.sql"
386
     keep_database_running
388
     keep_database_running
387
-    mysql -u root --password="$MARIADB_PASSWORD" < $INSTALL_DIR/batch.sql
388
-    shred -zu $INSTALL_DIR/batch.sql
389
+    mysql -u root --password="$MARIADB_PASSWORD" < "$INSTALL_DIR/batch.sql"
390
+    shred -zu "$INSTALL_DIR/batch.sql"
389
 }
391
 }
390
 
392
 
391
 
393
 
393
     apt-get -yq purge mariadb*
395
     apt-get -yq purge mariadb*
394
     rm -rf /var/lib/mysql
396
     rm -rf /var/lib/mysql
395
     rm -rf /etc/mysql
397
     rm -rf /etc/mysql
396
-    sed -i '/mariadb/d' ~/${PROJECT_NAME}-completed.txt
398
+    sed -i '/mariadb/d' "${HOME}/${PROJECT_NAME}-completed.txt"
397
     install_mariadb
399
     install_mariadb
398
 }
400
 }
399
 
401
 
404
         exit 723723452
406
         exit 723723452
405
     fi
407
     fi
406
 
408
 
407
-    if [ ! -d $INSTALL_DIR ]; then
408
-        mkdir -p $INSTALL_DIR
409
+    if [ ! -d "$INSTALL_DIR" ]; then
410
+        mkdir -p "$INSTALL_DIR"
409
     fi
411
     fi
410
 
412
 
411
-    cd $INSTALL_DIR
413
+    cd "$INSTALL_DIR" || exit 6384684
412
 
414
 
413
     echo "deb http://download.rethinkdb.com/apt $DEBIAN_VERSION main" | tee /etc/apt/sources.list.d/rethinkdb.list
415
     echo "deb http://download.rethinkdb.com/apt $DEBIAN_VERSION main" | tee /etc/apt/sources.list.d/rethinkdb.list
414
 
416
 
416
     apt-get update
418
     apt-get update
417
     apt-get -yq install rethinkdb
419
     apt-get -yq install rethinkdb
418
 
420
 
419
-    echo 'runuser=rethinkdb' > /etc/rethinkdb/instances.d/default.conf
420
-    echo 'rungroup=rethinkdb' >> /etc/rethinkdb/instances.d/default.conf
421
-    echo '# pid-file=/var/run/rethinkdb/rethinkdb.pid' >> /etc/rethinkdb/instances.d/default.conf
422
-    echo '# directory=/var/lib/rethinkdb/default' >> /etc/rethinkdb/instances.d/default.conf
423
-    echo '# log-file=/var/log/rethinkdb' >> /etc/rethinkdb/instances.d/default.conf
424
-    echo 'bind=127.0.0.1' >> /etc/rethinkdb/instances.d/default.conf
425
-    echo '# canonical-address=' >> /etc/rethinkdb/instances.d/default.conf
426
-    echo '# driver-port=28015' >> /etc/rethinkdb/instances.d/default.conf
427
-    echo '# cluster-port=29015' >> /etc/rethinkdb/instances.d/default.conf
428
-    echo '# join=example.com:29015' >> /etc/rethinkdb/instances.d/default.conf
429
-    echo '# port-offset=0' >> /etc/rethinkdb/instances.d/default.conf
430
-    echo '# reql-http-proxy=socks5://example.com:1080' >> /etc/rethinkdb/instances.d/default.conf
431
-    echo '# http-port=8091' >> /etc/rethinkdb/instances.d/default.conf
432
-    echo '# no-http-admin' >> /etc/rethinkdb/instances.d/default.conf
433
-    echo '# cores=2' >> /etc/rethinkdb/instances.d/default.conf
434
-    echo '# cache-size=1024' >> /etc/rethinkdb/instances.d/default.conf
435
-    echo '# io-threads=64' >> /etc/rethinkdb/instances.d/default.conf
436
-    echo '# direct-io' >> /etc/rethinkdb/instances.d/default.conf
437
-    echo '# server-name=server1' >> /etc/rethinkdb/instances.d/default.conf
421
+    { echo 'runuser=rethinkdb';
422
+      echo 'rungroup=rethinkdb';
423
+      echo '# pid-file=/var/run/rethinkdb/rethinkdb.pid';
424
+      echo '# directory=/var/lib/rethinkdb/default';
425
+      echo '# log-file=/var/log/rethinkdb';
426
+      echo 'bind=127.0.0.1';
427
+      echo '# canonical-address=';
428
+      echo '# driver-port=28015';
429
+      echo '# cluster-port=29015';
430
+      echo '# join=example.com:29015';
431
+      echo '# port-offset=0';
432
+      echo '# reql-http-proxy=socks5://example.com:1080';
433
+      echo '# http-port=8091';
434
+      echo '# no-http-admin';
435
+      echo '# cores=2';
436
+      echo '# cache-size=1024';
437
+      echo '# io-threads=64';
438
+      echo '# direct-io';
439
+      echo '# server-name=server1'; } > /etc/rethinkdb/instances.d/default.conf
438
 
440
 
439
     systemctl restart rethinkdb
441
     systemctl restart rethinkdb
440
 }
442
 }