From 81b4d3034fc9f49be3337cc8c8f15b5535b010a0 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Tue, 1 Nov 2016 20:10:36 +0000 Subject: [PATCH] More database backup checks --- src/freedombone-utils-backup | 65 +++++++++++++++++++++++++----------- 1 file changed, 46 insertions(+), 19 deletions(-) diff --git a/src/freedombone-utils-backup b/src/freedombone-utils-backup index c892f4b7..60c7b257 100755 --- a/src/freedombone-utils-backup +++ b/src/freedombone-utils-backup @@ -202,20 +202,31 @@ function backup_database_local { if [ ! -d $USB_MOUNT/backup/${1}data ]; then mkdir -p $USB_MOUNT/backup/${1}data fi - if [ ! -d /root/temp${1}data ]; then - mkdir -p /root/temp${1}data + local_database_dir=/root/temp${1}data + if [ ! -d ${local_database_dir} ]; then + mkdir -p ${local_database_dir} fi echo $"Obtaining ${1} database backup" - mysqldump --lock-tables --password="$DATABASE_PASSWORD" ${1} > /root/temp${1}data/${1}.sql - if [ ! -s /root/temp${1}data/${1}.sql ]; then - echo $"${1} database could not be saved" - shred -zu /root/temp${1}data/* - rm -rf /root/temp${1}data + mysqldump --lock-tables --password="$DATABASE_PASSWORD" ${1} > ${local_database_dir}/${1}.sql + if [ -f ${local_database_dir}/${1}.sql ]; then + if [ ! -s ${local_database_dir}/${1}.sql ]; then + echo $"${1} database could not be saved" + shred -zu ${local_database_dir}/* + rm -rf ${local_database_dir} + umount $USB_MOUNT + rm -rf $USB_MOUNT + restart_site + exit 6835872 + fi + else + echo $"${1} database could not be dumped" + rm -rf ${local_database_dir} umount $USB_MOUNT rm -rf $USB_MOUNT restart_site - exit 6835872 + exit 738653 fi + echo $"Database dump was created for ${1}" } function set_obnam_client_name { @@ -295,8 +306,13 @@ function restore_directory_from_friend { function backup_database_to_usb { database_name=$1 - backup_database_local $database_name - backup_directory_to_usb /root/temp${database_name}data ${database_name}data + local_database_dir=/root/temp${1}data + backup_database_local ${database_name} + if [ ! -d ${local_database_dir} ]; then + echo $"Error backing up ${1} database to ${local_database_dir}" + exit 62383 + fi + backup_directory_to_usb ${local_database_dir} ${database_name}data } # after user files have been restored permissions may need to be set @@ -370,20 +386,31 @@ function backup_database_remote { if [ ! -d $SERVER_DIRECTORY/backup/${1}data ]; then mkdir -p $SERVER_DIRECTORY/backup/${1}data fi - if [ ! -d /root/temp${1}data ]; then - mkdir -p /root/temp${1}data + local_database_dir=/root/temp${1}data + if [ ! -d ${local_database_dir} ]; then + mkdir -p ${local_database_dir} fi echo "Obtaining ${1} database backup" - mysqldump --password=$DATABASE_PASSWORD ${1} > /root/temp${1}data/${1}.sql - if [ ! -s /root/temp${1}data/${1}.sql ]; then - echo $"${1} database could not be saved" - shred -zu /root/temp${1}data/* - rm -rf /root/temp${1}data + mysqldump --password=$DATABASE_PASSWORD ${1} > ${local_database_dir}/${1}.sql + if [ ! -f ${local_database_dir}/${1}.sql ]; then + if [ ! -s ${local_database_dir}/${1}.sql ]; then + echo $"${1} database could not be saved" + shred -zu ${local_database_dir}/* + rm -rf ${local_database_dir} + # Send a warning email + echo $"Unable to export ${1} database" | mail -s $"${PROJECT_NAME} backup to friends" $ADMIN_EMAIL_ADDRESS + function_check restart_site + restart_site + exit 5738 + fi + else + echo $"${1} database could not be dumped" + rm -rf ${local_database_dir} # Send a warning email - echo $"Unable to export ${1} database" | mail -s $"${PROJECT_NAME} backup to friends" $ADMIN_EMAIL_ADDRESS + echo $"Unable to dump ${1} database" | mail -s $"${PROJECT_NAME} backup to friends" $ADMIN_EMAIL_ADDRESS function_check restart_site restart_site - exit 5738 + exit 3687 fi }