mysql备份shell

#该脚本的功能是在tmp目录下创建一个当天日期的文件夹,使用mysqldump生成每一个库的sql文件并保存在该文件夹下。然后对生成的sql文件进行压缩打包,生成新的压缩文件,并通过ftp上传当天生成的打包文件。
#/bin/bash
DATE=`date +%Y%m%d`
DATE_TIME=`date +"%Y%m%d%H%M%S"`
MYSQL_HOST="localhost"
MYSQL_USER="root"
MYSQL_PASS=123456
DBBACKUP_PATH=/tmp
MYSQL_DUMP="/usr/local/mysql/bin/mysqldump"
[ -d ${DBBACKUP_PATH} ] || mkdir -p ${DBBACKUP_PATH}
[ -d ${DBBACKUP_PATH}/$DATE ] || mkdir -p ${DBBACKUP_PATH}/$DATE
#rm -f $DBBACKUP_PATH/dbdata_$DATE* 2 >/dev/null
#rm -rf $DBBACKUP_PATH/$DATE 2 >/dev/null
sleep 1
# database_allback生成SQL文件
function database_allback()
{
 for i in $(mysql -h $MYSQL_HOST -u $MYSQL_USER -p$MYSQL_PASS -e "show databases\G"|grep Database|awk '{ print $2 }')
do
#dump逐库循环生成sql文件
      $MYSQL_DUMP --opt --skip-lock-tables $i -u $MYSQL_USER -p$MYSQL_PASS >${DBBACKUP_PATH}/$DATE/$i$DATE.sql 2>>${DBBACKUP_PATH}/$DATE/back_$DATE.log
      echo "$MYSQL_DUMP --opt --skip-lock-tables $i -u $MYSQL_USER -p$MYSQL_PASS >${DBBACKUP_PATH}/$DATE/back_$DATE.sql">>${DBBACKUP_PATH}/$DATE/back_$DATE.log
      sleep 1
      if [ $? -eq 0 ];then
               echo $DATE_TIME":databases [ $i ] backup seccess!">>${DBBACKUP_PATH}/$DATE/back_$DATE.log
          else
              echo $DATE_TIME":databases  [ $i ] backup incorrect!">>${DBBACKUP_PATH}/$DATE/back_$DATE.log
             fi
             #echo $DATE_TIME":[database_allback]excute mysqldump --opt $i -u $MYSQL_USER -p$MYSQL_PASS >${DBBACKUP_PATH}/$DATE/back_$DATE.sql">>${DBBACKUP_PATH}/$DATE/back_$DATE.log
         done
}
# tar.gz_files对生成的sql文件进行打包压缩
function tar.gz_files()
{
  cd $DBBACKUP_PATH
  tar -zcvf dbdata_$DATE.tar.gz $DATE
  if [ $? -eq 0 ];then
           echo $DATE_TIME":dbdata_$DATE.tar.gz files creat seccess!">>${DBBACKUP_PATH}/$DATE/back_$DATE.log
       else
          echo $DATE_TIME":dbdata_$DATE.tar.gz files creat incorrect!">>${DBBACKUP_PATH}/$DATE/back_$DATE.log
          exit 9
          fi
}
#FTP上传压缩打包文件
function ftp_putfiles()
{
ftp -v -n 192.168.1.52 << << EOF
user backup 123456
binary
hash
cd /home/ftpdata
lcd $tmp
put  dbdata_$DATE.tar.gz
bye
EOF
}
database_allback
tar.gz_files


你可能感兴趣的:(mysql,localhost,文件夹,压缩文件)