From c01783b518918340860e371d01b490e4b221919b Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sun, 11 Jun 2017 10:40:59 +0100 Subject: [PATCH] More keeping mariadb running --- src/freedombone-utils-backup | 4 ++++ src/freedombone-utils-database | 22 ++++++++++++++++++++++ src/freedombone-utils-watchdog | 5 +++++ 3 files changed, 31 insertions(+) diff --git a/src/freedombone-utils-backup b/src/freedombone-utils-backup index c15814b4..07c52dec 100755 --- a/src/freedombone-utils-backup +++ b/src/freedombone-utils-backup @@ -214,6 +214,7 @@ function backup_database_local_usb { if [ ! -d ${local_database_dir} ]; then mkdir -p ${local_database_dir} fi + keep_database_running echo $"Obtaining ${1} database backup" mysqldump --lock-tables --password="$DATABASE_PASSWORD" ${1} > ${local_database_dir}/${1}.sql if [ -f ${local_database_dir}/${1}.sql ]; then @@ -420,6 +421,7 @@ function backup_database_remote { if [ ! -d ${local_database_dir} ]; then mkdir -p ${local_database_dir} fi + keep_database_running echo "Obtaining ${1} database backup" mysqldump --password="$DATABASE_PASSWORD" ${1} > ${local_database_dir}/${1}.sql if [ -f ${local_database_dir}/${1}.sql ]; then @@ -512,6 +514,7 @@ function restore_database_from_friend { rm -rf ${local_database_dir} exit 503 fi + keep_database_running mysqlsuccess=$(mysql -u root --password="$DATABASE_PASSWORD" ${1} -o < ${local_database_dir}/${RESTORE_SUBDIR}/temp${1}data/${1}.sql) if [ ! "$?" = "0" ]; then echo "$mysqlsuccess" @@ -569,6 +572,7 @@ function restore_database { backup_unmount_drive exit 503 fi + keep_database_running 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) if [ ! "$?" = "0" ]; then echo "$mysqlsuccess" diff --git a/src/freedombone-utils-database b/src/freedombone-utils-database index 4810f9d2..dc23ed99 100755 --- a/src/freedombone-utils-database +++ b/src/freedombone-utils-database @@ -34,6 +34,12 @@ MARIADB_PASSWORD= # Used to indicate whether the backup contains MariaDB databases or not BACKUP_INCLUDES_DATABASES="no" +function keep_database_running { + if [ ! $(daemon_is_running mariadb) ]; then + systemctl start mariadb + fi +} + function remove_backup_database_local { database_name=$1 @@ -49,6 +55,15 @@ function backup_database_local { database_name=$1 backup_databases_script=/usr/bin/backupdatabases + if ! grep -q "# Check database daemon" /usr/bin/backupdatabases; then + echo '' >> /usr/bin/backupdatabases + echo '# Check database daemon is running' >> /usr/bin/backupdatabases + echo 'if [ ! $(systemctl is-active mariadb >/dev/null 2>&1 && echo Running) ]; then' >> /usr/bin/backupdatabases + echo ' systemctl start mariadb' >> /usr/bin/backupdatabases + echo 'fi' >> /usr/bin/backupdatabases + echo '' >> /usr/bin/backupdatabases + fi + if ! grep -q "# Backup the ${database_name} database" $backup_databases_script; then echo "# Backup the ${database_name} database" >> $backup_databases_script echo "TEMPFILE=/root/${database_name}.sql" >> $backup_databases_script @@ -258,6 +273,7 @@ function remove_database { echo "drop database ${app_name}; quit" > $INSTALL_DIR/batch.sql chmod 600 $INSTALL_DIR/batch.sql + keep_database_running mysql -u root --password="$MARIADB_PASSWORD" < $INSTALL_DIR/batch.sql shred -zu $INSTALL_DIR/batch.sql } @@ -265,6 +281,7 @@ quit" > $INSTALL_DIR/batch.sql function initialise_database { database_name=$1 database_file=$2 + keep_database_running mysql -u root --password="$MARIADB_PASSWORD" -D $database_name < $database_file if [ ! "$?" = "0" ]; then exit 62952 @@ -274,12 +291,14 @@ function initialise_database { function run_query { database_name=$1 database_query=$2 + keep_database_running mysql -u root --password="$MARIADB_PASSWORD" -e "$database_query" $database_name } function run_query_root { database_name=$1 database_query=$2 + keep_database_running mysql -e "$database_query" $database_name } @@ -301,6 +320,7 @@ GRANT ALL PRIVILEGES ON ${app_name}.* TO '$app_admin_username@localhost'; flush privileges; quit" > $INSTALL_DIR/batch.sql chmod 600 $INSTALL_DIR/batch.sql + keep_database_running mysql -u root --password="$MARIADB_PASSWORD" < $INSTALL_DIR/batch.sql shred -zu $INSTALL_DIR/batch.sql } @@ -308,6 +328,7 @@ quit" > $INSTALL_DIR/batch.sql function run_query_with_output { database_name=$1 database_query=$2 + keep_database_running output=$(mysql -u root --password="$MARIADB_PASSWORD" << EOF use $database_name; $database_query @@ -325,6 +346,7 @@ function drop_database { flush privileges; quit" > $INSTALL_DIR/batch.sql chmod 600 $INSTALL_DIR/batch.sql + keep_database_running mysql -u root --password="$MARIADB_PASSWORD" < $INSTALL_DIR/batch.sql shred -zu $INSTALL_DIR/batch.sql } diff --git a/src/freedombone-utils-watchdog b/src/freedombone-utils-watchdog index 5b0e8f8b..1f442ba3 100755 --- a/src/freedombone-utils-watchdog +++ b/src/freedombone-utils-watchdog @@ -49,6 +49,11 @@ function install_watchdog_script { mark_completed $FUNCNAME } +function daemon_is_running { + daemon_name=$1 + systemctl is-active ${daemon_name} >/dev/null 2>&1 && echo Running +} + function add_watchdog_daemon { daemon_name=$1