浏览代码

More keeping mariadb running

Bob Mottram 8 年前
父节点
当前提交
c01783b518
共有 3 个文件被更改,包括 31 次插入0 次删除
  1. 4
    0
      src/freedombone-utils-backup
  2. 22
    0
      src/freedombone-utils-database
  3. 5
    0
      src/freedombone-utils-watchdog

+ 4
- 0
src/freedombone-utils-backup 查看文件

@@ -214,6 +214,7 @@ function backup_database_local_usb {
214 214
     if [ ! -d ${local_database_dir} ]; then
215 215
         mkdir -p ${local_database_dir}
216 216
     fi
217
+    keep_database_running
217 218
     echo $"Obtaining ${1} database backup"
218 219
     mysqldump --lock-tables --password="$DATABASE_PASSWORD" ${1} > ${local_database_dir}/${1}.sql
219 220
     if [ -f ${local_database_dir}/${1}.sql ]; then
@@ -420,6 +421,7 @@ function backup_database_remote {
420 421
     if [ ! -d ${local_database_dir} ]; then
421 422
         mkdir -p ${local_database_dir}
422 423
     fi
424
+    keep_database_running
423 425
     echo "Obtaining ${1} database backup"
424 426
     mysqldump --password="$DATABASE_PASSWORD" ${1} > ${local_database_dir}/${1}.sql
425 427
     if [ -f ${local_database_dir}/${1}.sql ]; then
@@ -512,6 +514,7 @@ function restore_database_from_friend {
512 514
             rm -rf ${local_database_dir}
513 515
             exit 503
514 516
         fi
517
+        keep_database_running
515 518
         mysqlsuccess=$(mysql -u root --password="$DATABASE_PASSWORD" ${1} -o < ${local_database_dir}/${RESTORE_SUBDIR}/temp${1}data/${1}.sql)
516 519
         if [ ! "$?" = "0" ]; then
517 520
             echo "$mysqlsuccess"
@@ -569,6 +572,7 @@ function restore_database {
569 572
             backup_unmount_drive
570 573
             exit 503
571 574
         fi
575
+        keep_database_running
572 576
         mysqlsuccess=$(mysql -u root --password="$DATABASE_PASSWORD" ${restore_app_name} -o < ${local_database_dir}/${RESTORE_SUBDIR}/temp${restore_app_name}data/${restore_app_name}.sql)
573 577
         if [ ! "$?" = "0" ]; then
574 578
             echo "$mysqlsuccess"

+ 22
- 0
src/freedombone-utils-database 查看文件

@@ -34,6 +34,12 @@ MARIADB_PASSWORD=
34 34
 # Used to indicate whether the backup contains MariaDB databases or not
35 35
 BACKUP_INCLUDES_DATABASES="no"
36 36
 
37
+function keep_database_running {
38
+    if [ ! $(daemon_is_running mariadb) ]; then
39
+        systemctl start mariadb
40
+    fi
41
+}
42
+
37 43
 function remove_backup_database_local {
38 44
     database_name=$1
39 45
 
@@ -49,6 +55,15 @@ function backup_database_local {
49 55
     database_name=$1
50 56
 
51 57
     backup_databases_script=/usr/bin/backupdatabases
58
+    if ! grep -q "# Check database daemon" /usr/bin/backupdatabases; then
59
+        echo '' >> /usr/bin/backupdatabases
60
+        echo '# Check database daemon is running' >> /usr/bin/backupdatabases
61
+        echo 'if [ ! $(systemctl is-active mariadb >/dev/null 2>&1 && echo Running) ]; then' >> /usr/bin/backupdatabases
62
+        echo '    systemctl start mariadb' >> /usr/bin/backupdatabases
63
+        echo 'fi' >> /usr/bin/backupdatabases
64
+        echo '' >> /usr/bin/backupdatabases
65
+    fi
66
+
52 67
     if ! grep -q "# Backup the ${database_name} database" $backup_databases_script; then
53 68
         echo "# Backup the ${database_name} database" >> $backup_databases_script
54 69
         echo "TEMPFILE=/root/${database_name}.sql" >> $backup_databases_script
@@ -258,6 +273,7 @@ function remove_database {
258 273
     echo "drop database ${app_name};
259 274
 quit" > $INSTALL_DIR/batch.sql
260 275
     chmod 600 $INSTALL_DIR/batch.sql
276
+    keep_database_running
261 277
     mysql -u root --password="$MARIADB_PASSWORD" < $INSTALL_DIR/batch.sql
262 278
     shred -zu $INSTALL_DIR/batch.sql
263 279
 }
@@ -265,6 +281,7 @@ quit" > $INSTALL_DIR/batch.sql
265 281
 function initialise_database {
266 282
     database_name=$1
267 283
     database_file=$2
284
+    keep_database_running
268 285
     mysql -u root --password="$MARIADB_PASSWORD" -D $database_name < $database_file
269 286
     if [ ! "$?" = "0" ]; then
270 287
         exit 62952
@@ -274,12 +291,14 @@ function initialise_database {
274 291
 function run_query {
275 292
     database_name=$1
276 293
     database_query=$2
294
+    keep_database_running
277 295
     mysql -u root --password="$MARIADB_PASSWORD" -e "$database_query" $database_name
278 296
 }
279 297
 
280 298
 function run_query_root {
281 299
     database_name=$1
282 300
     database_query=$2
301
+    keep_database_running
283 302
     mysql -e "$database_query" $database_name
284 303
 }
285 304
 
@@ -301,6 +320,7 @@ GRANT ALL PRIVILEGES ON ${app_name}.* TO '$app_admin_username@localhost';
301 320
 flush privileges;
302 321
 quit" > $INSTALL_DIR/batch.sql
303 322
     chmod 600 $INSTALL_DIR/batch.sql
323
+    keep_database_running
304 324
     mysql -u root --password="$MARIADB_PASSWORD" < $INSTALL_DIR/batch.sql
305 325
     shred -zu $INSTALL_DIR/batch.sql
306 326
 }
@@ -308,6 +328,7 @@ quit" > $INSTALL_DIR/batch.sql
308 328
 function run_query_with_output {
309 329
     database_name=$1
310 330
     database_query=$2
331
+    keep_database_running
311 332
     output=$(mysql -u root --password="$MARIADB_PASSWORD" << EOF
312 333
 use $database_name;
313 334
 $database_query
@@ -325,6 +346,7 @@ function drop_database {
325 346
 flush privileges;
326 347
 quit" > $INSTALL_DIR/batch.sql
327 348
     chmod 600 $INSTALL_DIR/batch.sql
349
+    keep_database_running
328 350
     mysql -u root --password="$MARIADB_PASSWORD" < $INSTALL_DIR/batch.sql
329 351
     shred -zu $INSTALL_DIR/batch.sql
330 352
 }

+ 5
- 0
src/freedombone-utils-watchdog 查看文件

@@ -49,6 +49,11 @@ function install_watchdog_script {
49 49
     mark_completed $FUNCNAME
50 50
 }
51 51
 
52
+function daemon_is_running {
53
+    daemon_name=$1
54
+    systemctl is-active ${daemon_name} >/dev/null 2>&1 && echo Running
55
+}
56
+
52 57
 function add_watchdog_daemon {
53 58
     daemon_name=$1
54 59