.#!/bin/bash
LOG_START_TIME=`date +"%Y-%m-%d-%H-%M-%S"`
BACKUP_DIR=/data/sqlback
LOG_DIR=/root/tasks/backlog
BACKUP_LOG="$LOG_DIR/${LOG_START_TIME}.log"
BKDBF="$BACKUP_DIR/dblist.txt"
TIMEFILE1="$BACKUP_DIR/time1.txt"
TIMEFILE2="$BACKUP_DIR/time2.txt"
USER=root
function write_gziplog()
{
log_time=`date +"%Y-%m-%d-%H-%M-%S"`
backup_file_name=$2
err_msg="$log_time ERROR GZIP in backup MySQL_Table($backup_file_name)"
suc_msg="$log_time SUCCESS GZIP in backup MySQL($backup_file_name)"
if [ $1 -eq 0 ]; then
echo $suc_msg
echo $suc_msg >> $BACKUP_LOG
else
echo $err_msg
echo $err_msg >> $BACKUP_LOG
fi
}
function write_dumplog()
{
log_time=`date +"%Y-%m-%d-%H-%M-%S"`
backup_file_name=$2
err_msg="$log_time ERROR DUMP in backup MySQL_Table($backup_file_name)"
suc_msg="$log_time SUCCESS DUMP in backup MySQL($backup_file_name)"
if [ $1 -eq 0 ]; then
echo $suc_msg
echo $suc_msg >> $BACKUP_LOG
else
echo $err_msg
echo $err_msg >> $BACKUP_LOG
fi
}
function backup_file()
{
mkdir "$BACKUP_DIR/$1"
chown mysql.mysql "$BACKUP_DIR/$1"
mysqldump -u $USER --tab="$BACKUP_DIR/$1" $1 >> "$BACKUP_DIR/mysqldump.log" 2>&1
write_dumplog $? $1
gzip "$BACKUP_DIR/$1"/*
write_gziplog $? $1
}
function create_log_file()
{
if [ ! -d $LOG_DIR ];then
mkdir $LOG_DIR
chown mysql.mysql $LOG_DIR
fi
if [ ! -d $BACKUP_DIR ];then
mkdir $BACKUP_DIR
chown mysql.mysql $BACKUP_DIR
fi
cd $BACKUP_DIR
rm -rf *
echo `date +%s` >>$TIMEFILE1
touch $BACKUP_LOG
mysql -e 'show databases' -u $USER|grep -v Database|grep -v information_schema >$BKDBF
}
clear
echo "Backup Process Begins"
create_log_file
for file in `cat $BKDBF`
do
backup_file $file
done
echo `du -csh $BACKUP_DIR` >> $BACKUP_LOG
echo "Backup Process Ends"
echo `date +%s` >>$TIMEFILE2
LOG_START_TIME=`date +"%Y-%m-%d-%H-%M-%S"`
BACKUP_DIR=/data/sqlback
LOG_DIR=/root/tasks/backlog
BACKUP_LOG="$LOG_DIR/${LOG_START_TIME}.log"
BKDBF="$BACKUP_DIR/dblist.txt"
TIMEFILE1="$BACKUP_DIR/time1.txt"
TIMEFILE2="$BACKUP_DIR/time2.txt"
USER=root
function write_gziplog()
{
log_time=`date +"%Y-%m-%d-%H-%M-%S"`
backup_file_name=$2
err_msg="$log_time ERROR GZIP in backup MySQL_Table($backup_file_name)"
suc_msg="$log_time SUCCESS GZIP in backup MySQL($backup_file_name)"
if [ $1 -eq 0 ]; then
echo $suc_msg
echo $suc_msg >> $BACKUP_LOG
else
echo $err_msg
echo $err_msg >> $BACKUP_LOG
fi
}
function write_dumplog()
{
log_time=`date +"%Y-%m-%d-%H-%M-%S"`
backup_file_name=$2
err_msg="$log_time ERROR DUMP in backup MySQL_Table($backup_file_name)"
suc_msg="$log_time SUCCESS DUMP in backup MySQL($backup_file_name)"
if [ $1 -eq 0 ]; then
echo $suc_msg
echo $suc_msg >> $BACKUP_LOG
else
echo $err_msg
echo $err_msg >> $BACKUP_LOG
fi
}
function backup_file()
{
mkdir "$BACKUP_DIR/$1"
chown mysql.mysql "$BACKUP_DIR/$1"
mysqldump -u $USER --tab="$BACKUP_DIR/$1" $1 >> "$BACKUP_DIR/mysqldump.log" 2>&1
write_dumplog $? $1
gzip "$BACKUP_DIR/$1"/*
write_gziplog $? $1
}
function create_log_file()
{
if [ ! -d $LOG_DIR ];then
mkdir $LOG_DIR
chown mysql.mysql $LOG_DIR
fi
if [ ! -d $BACKUP_DIR ];then
mkdir $BACKUP_DIR
chown mysql.mysql $BACKUP_DIR
fi
cd $BACKUP_DIR
rm -rf *
echo `date +%s` >>$TIMEFILE1
touch $BACKUP_LOG
mysql -e 'show databases' -u $USER|grep -v Database|grep -v information_schema >$BKDBF
}
clear
echo "Backup Process Begins"
create_log_file
for file in `cat $BKDBF`
do
backup_file $file
done
echo `du -csh $BACKUP_DIR` >> $BACKUP_LOG
echo "Backup Process Ends"
echo `date +%s` >>$TIMEFILE2