lbdbzj110 发表于 2018-8-23 09:36:19

mysql备份shell-linux技术

#该脚本的功能是在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":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
页: [1]
查看完整版本: mysql备份shell-linux技术