点击(此处)折叠或打开
-
#!/bin/bash
-
#
-
#desc:backup db point_in_time
-
#
-
#creator:xiaozhenggang
-
#
-
#date:2011/12/08
-
#
-
-
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin
-
export PATH
-
-
DATA_DIR=/data/mysql/data
-
LOG_BIN_BAK=/data_bak/log_bin_bak
-
DATE_BAK=`date +'%Y-%m-%d %H:%M:%S'`
-
USER_BAK=backup
-
PASSWD_BAK="backup"
-
HOST_HOST=192.168.161.250
-
DB_BAK=efast
-
TAR_DATE=`date +'%Y-%m-%d'`
-
BAK_LOG=/data_bak/$BAK_DB.log
-
BIN_LOG_NAME=`grep 'log_bin=' /etc/my.cnf | awk -F '=' '{print $2}'`
-
BIN_LOG_LIST=`cat $DATA_DIR/$BIN_LOG_NAME.index`
-
-
#flush mysql-bin.index
-
# cd $DATA_DIR
-
# /bin/ls -l $BIN_LOG_NAME.[0-9]* > $DATA_DIR/$BIN_LOG_NAME.index
-
-
#check $BAK_LOG ,$TMP_BAK_DIR,$DATA_BAK
-
if [ ! -f $BAK_LOG ];then
-
touch $BAK_LOG
-
echo "[$DATE_BAK]:$BAK_LOG not exsits,created it!"
-
fi
-
-
-
if [ ! -d $LOG_BIN_BAK ];then
-
mkdir $LOG_BIN_BAK
-
echo "[$DATA_BAK]:$LOG_BIN_BAK not exsits,created it!"
-
fi
-
-
#flush logs
-
mysqladmin flush-logs
-
-
for file in $BIN_LOG_LIST
-
do
-
BASE=`basename $file`
-
echo $BASE
-
-
if [ -e "$LOG_BIN_BAK/$BASE" ];then
-
echo "[$DATE_BAK]: $BASE exists,skip it!"
-
else
-
echo "[$DATE_BAK]: $BASE does not exists,copy it to $LOG_BIN_BAK"
-
cp $DATA_DIR/$BASE $LOG_BIN_BAK
-
if [ $? -eq 0 ];then
-
echo "[$DATE_BAK]: copy successed!"
-
else
-
echo "[$DATE_BAK]: copy failed!Please check it out!"
-
exit 111
-
fi
-
fi
- done