More keeping mariadb running

This commit is contained in:
Bob Mottram 2017-06-11 10:40:59 +01:00
parent 2bc2c38db6
commit c01783b518
3 changed files with 31 additions and 0 deletions

View File

@ -214,6 +214,7 @@ function backup_database_local_usb {
if [ ! -d ${local_database_dir} ]; then if [ ! -d ${local_database_dir} ]; then
mkdir -p ${local_database_dir} mkdir -p ${local_database_dir}
fi fi
keep_database_running
echo $"Obtaining ${1} database backup" echo $"Obtaining ${1} database backup"
mysqldump --lock-tables --password="$DATABASE_PASSWORD" ${1} > ${local_database_dir}/${1}.sql mysqldump --lock-tables --password="$DATABASE_PASSWORD" ${1} > ${local_database_dir}/${1}.sql
if [ -f ${local_database_dir}/${1}.sql ]; then if [ -f ${local_database_dir}/${1}.sql ]; then
@ -420,6 +421,7 @@ function backup_database_remote {
if [ ! -d ${local_database_dir} ]; then if [ ! -d ${local_database_dir} ]; then
mkdir -p ${local_database_dir} mkdir -p ${local_database_dir}
fi fi
keep_database_running
echo "Obtaining ${1} database backup" echo "Obtaining ${1} database backup"
mysqldump --password="$DATABASE_PASSWORD" ${1} > ${local_database_dir}/${1}.sql mysqldump --password="$DATABASE_PASSWORD" ${1} > ${local_database_dir}/${1}.sql
if [ -f ${local_database_dir}/${1}.sql ]; then if [ -f ${local_database_dir}/${1}.sql ]; then
@ -512,6 +514,7 @@ function restore_database_from_friend {
rm -rf ${local_database_dir} rm -rf ${local_database_dir}
exit 503 exit 503
fi fi
keep_database_running
mysqlsuccess=$(mysql -u root --password="$DATABASE_PASSWORD" ${1} -o < ${local_database_dir}/${RESTORE_SUBDIR}/temp${1}data/${1}.sql) mysqlsuccess=$(mysql -u root --password="$DATABASE_PASSWORD" ${1} -o < ${local_database_dir}/${RESTORE_SUBDIR}/temp${1}data/${1}.sql)
if [ ! "$?" = "0" ]; then if [ ! "$?" = "0" ]; then
echo "$mysqlsuccess" echo "$mysqlsuccess"
@ -569,6 +572,7 @@ function restore_database {
backup_unmount_drive backup_unmount_drive
exit 503 exit 503
fi 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) 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 if [ ! "$?" = "0" ]; then
echo "$mysqlsuccess" echo "$mysqlsuccess"

View File

@ -34,6 +34,12 @@ MARIADB_PASSWORD=
# Used to indicate whether the backup contains MariaDB databases or not # Used to indicate whether the backup contains MariaDB databases or not
BACKUP_INCLUDES_DATABASES="no" BACKUP_INCLUDES_DATABASES="no"
function keep_database_running {
if [ ! $(daemon_is_running mariadb) ]; then
systemctl start mariadb
fi
}
function remove_backup_database_local { function remove_backup_database_local {
database_name=$1 database_name=$1
@ -49,6 +55,15 @@ function backup_database_local {
database_name=$1 database_name=$1
backup_databases_script=/usr/bin/backupdatabases 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 if ! grep -q "# Backup the ${database_name} database" $backup_databases_script; then
echo "# Backup the ${database_name} database" >> $backup_databases_script echo "# Backup the ${database_name} database" >> $backup_databases_script
echo "TEMPFILE=/root/${database_name}.sql" >> $backup_databases_script echo "TEMPFILE=/root/${database_name}.sql" >> $backup_databases_script
@ -258,6 +273,7 @@ function remove_database {
echo "drop database ${app_name}; echo "drop database ${app_name};
quit" > $INSTALL_DIR/batch.sql quit" > $INSTALL_DIR/batch.sql
chmod 600 $INSTALL_DIR/batch.sql chmod 600 $INSTALL_DIR/batch.sql
keep_database_running
mysql -u root --password="$MARIADB_PASSWORD" < $INSTALL_DIR/batch.sql mysql -u root --password="$MARIADB_PASSWORD" < $INSTALL_DIR/batch.sql
shred -zu $INSTALL_DIR/batch.sql shred -zu $INSTALL_DIR/batch.sql
} }
@ -265,6 +281,7 @@ quit" > $INSTALL_DIR/batch.sql
function initialise_database { function initialise_database {
database_name=$1 database_name=$1
database_file=$2 database_file=$2
keep_database_running
mysql -u root --password="$MARIADB_PASSWORD" -D $database_name < $database_file mysql -u root --password="$MARIADB_PASSWORD" -D $database_name < $database_file
if [ ! "$?" = "0" ]; then if [ ! "$?" = "0" ]; then
exit 62952 exit 62952
@ -274,12 +291,14 @@ function initialise_database {
function run_query { function run_query {
database_name=$1 database_name=$1
database_query=$2 database_query=$2
keep_database_running
mysql -u root --password="$MARIADB_PASSWORD" -e "$database_query" $database_name mysql -u root --password="$MARIADB_PASSWORD" -e "$database_query" $database_name
} }
function run_query_root { function run_query_root {
database_name=$1 database_name=$1
database_query=$2 database_query=$2
keep_database_running
mysql -e "$database_query" $database_name mysql -e "$database_query" $database_name
} }
@ -301,6 +320,7 @@ GRANT ALL PRIVILEGES ON ${app_name}.* TO '$app_admin_username@localhost';
flush privileges; flush privileges;
quit" > $INSTALL_DIR/batch.sql quit" > $INSTALL_DIR/batch.sql
chmod 600 $INSTALL_DIR/batch.sql chmod 600 $INSTALL_DIR/batch.sql
keep_database_running
mysql -u root --password="$MARIADB_PASSWORD" < $INSTALL_DIR/batch.sql mysql -u root --password="$MARIADB_PASSWORD" < $INSTALL_DIR/batch.sql
shred -zu $INSTALL_DIR/batch.sql shred -zu $INSTALL_DIR/batch.sql
} }
@ -308,6 +328,7 @@ quit" > $INSTALL_DIR/batch.sql
function run_query_with_output { function run_query_with_output {
database_name=$1 database_name=$1
database_query=$2 database_query=$2
keep_database_running
output=$(mysql -u root --password="$MARIADB_PASSWORD" << EOF output=$(mysql -u root --password="$MARIADB_PASSWORD" << EOF
use $database_name; use $database_name;
$database_query $database_query
@ -325,6 +346,7 @@ function drop_database {
flush privileges; flush privileges;
quit" > $INSTALL_DIR/batch.sql quit" > $INSTALL_DIR/batch.sql
chmod 600 $INSTALL_DIR/batch.sql chmod 600 $INSTALL_DIR/batch.sql
keep_database_running
mysql -u root --password="$MARIADB_PASSWORD" < $INSTALL_DIR/batch.sql mysql -u root --password="$MARIADB_PASSWORD" < $INSTALL_DIR/batch.sql
shred -zu $INSTALL_DIR/batch.sql shred -zu $INSTALL_DIR/batch.sql
} }

View File

@ -49,6 +49,11 @@ function install_watchdog_script {
mark_completed $FUNCNAME 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 { function add_watchdog_daemon {
daemon_name=$1 daemon_name=$1