浏览代码

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

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

34
 # Used to indicate whether the backup contains MariaDB databases or not
34
 # Used to indicate whether the backup contains MariaDB databases or not
35
 BACKUP_INCLUDES_DATABASES="no"
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
 function remove_backup_database_local {
43
 function remove_backup_database_local {
38
     database_name=$1
44
     database_name=$1
39
 
45
 
49
     database_name=$1
55
     database_name=$1
50
 
56
 
51
     backup_databases_script=/usr/bin/backupdatabases
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
     if ! grep -q "# Backup the ${database_name} database" $backup_databases_script; then
67
     if ! grep -q "# Backup the ${database_name} database" $backup_databases_script; then
53
         echo "# Backup the ${database_name} database" >> $backup_databases_script
68
         echo "# Backup the ${database_name} database" >> $backup_databases_script
54
         echo "TEMPFILE=/root/${database_name}.sql" >> $backup_databases_script
69
         echo "TEMPFILE=/root/${database_name}.sql" >> $backup_databases_script
258
     echo "drop database ${app_name};
273
     echo "drop database ${app_name};
259
 quit" > $INSTALL_DIR/batch.sql
274
 quit" > $INSTALL_DIR/batch.sql
260
     chmod 600 $INSTALL_DIR/batch.sql
275
     chmod 600 $INSTALL_DIR/batch.sql
276
+    keep_database_running
261
     mysql -u root --password="$MARIADB_PASSWORD" < $INSTALL_DIR/batch.sql
277
     mysql -u root --password="$MARIADB_PASSWORD" < $INSTALL_DIR/batch.sql
262
     shred -zu $INSTALL_DIR/batch.sql
278
     shred -zu $INSTALL_DIR/batch.sql
263
 }
279
 }
265
 function initialise_database {
281
 function initialise_database {
266
     database_name=$1
282
     database_name=$1
267
     database_file=$2
283
     database_file=$2
284
+    keep_database_running
268
     mysql -u root --password="$MARIADB_PASSWORD" -D $database_name < $database_file
285
     mysql -u root --password="$MARIADB_PASSWORD" -D $database_name < $database_file
269
     if [ ! "$?" = "0" ]; then
286
     if [ ! "$?" = "0" ]; then
270
         exit 62952
287
         exit 62952
274
 function run_query {
291
 function run_query {
275
     database_name=$1
292
     database_name=$1
276
     database_query=$2
293
     database_query=$2
294
+    keep_database_running
277
     mysql -u root --password="$MARIADB_PASSWORD" -e "$database_query" $database_name
295
     mysql -u root --password="$MARIADB_PASSWORD" -e "$database_query" $database_name
278
 }
296
 }
279
 
297
 
280
 function run_query_root {
298
 function run_query_root {
281
     database_name=$1
299
     database_name=$1
282
     database_query=$2
300
     database_query=$2
301
+    keep_database_running
283
     mysql -e "$database_query" $database_name
302
     mysql -e "$database_query" $database_name
284
 }
303
 }
285
 
304
 
301
 flush privileges;
320
 flush privileges;
302
 quit" > $INSTALL_DIR/batch.sql
321
 quit" > $INSTALL_DIR/batch.sql
303
     chmod 600 $INSTALL_DIR/batch.sql
322
     chmod 600 $INSTALL_DIR/batch.sql
323
+    keep_database_running
304
     mysql -u root --password="$MARIADB_PASSWORD" < $INSTALL_DIR/batch.sql
324
     mysql -u root --password="$MARIADB_PASSWORD" < $INSTALL_DIR/batch.sql
305
     shred -zu $INSTALL_DIR/batch.sql
325
     shred -zu $INSTALL_DIR/batch.sql
306
 }
326
 }
308
 function run_query_with_output {
328
 function run_query_with_output {
309
     database_name=$1
329
     database_name=$1
310
     database_query=$2
330
     database_query=$2
331
+    keep_database_running
311
     output=$(mysql -u root --password="$MARIADB_PASSWORD" << EOF
332
     output=$(mysql -u root --password="$MARIADB_PASSWORD" << EOF
312
 use $database_name;
333
 use $database_name;
313
 $database_query
334
 $database_query
325
 flush privileges;
346
 flush privileges;
326
 quit" > $INSTALL_DIR/batch.sql
347
 quit" > $INSTALL_DIR/batch.sql
327
     chmod 600 $INSTALL_DIR/batch.sql
348
     chmod 600 $INSTALL_DIR/batch.sql
349
+    keep_database_running
328
     mysql -u root --password="$MARIADB_PASSWORD" < $INSTALL_DIR/batch.sql
350
     mysql -u root --password="$MARIADB_PASSWORD" < $INSTALL_DIR/batch.sql
329
     shred -zu $INSTALL_DIR/batch.sql
351
     shred -zu $INSTALL_DIR/batch.sql
330
 }
352
 }

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

49
     mark_completed $FUNCNAME
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
 function add_watchdog_daemon {
57
 function add_watchdog_daemon {
53
     daemon_name=$1
58
     daemon_name=$1
54
 
59