備份數據庫的shell

#!/bin/bash
#定義備份數據庫名
dbname=yourdbname
#定義備份數據庫的用戶名和密碼
dbuser=yourdbuser
dbpasswd=yourdbpasswd
#數據庫備份路徑
backuppath=/home/dbback/sqlzip/
#數據庫備份日誌文件存儲的路徑
logfile=/home/dbback/log/db_backup.log
#獲取當前日期,用做數據庫名
now=`date +%Y-%m-%d`
#拼接文件名
dumpfile=db-$now
#使用下面函數備份數據庫
back_db(){
   echo "------"$(date +%Y-%m-%d%t%A%t%T)" Beginning database "${dbname}" backup--------" >>${logfile}
   mysqldump --skip-opt -u${dbuser} -p${dbpasswd} --default-character-set=utf8 --quick --force --routines --add-drop-database --add-drop-table ${dbname} >${backuppath}${dumpfile}.sql 2>> ${logfile}
  echo "mysqldump --skip-opt -u${dbuser} -p${dbpasswd} --default-character-set=utf8 --quick --force --routines --add-drop-database --add-drop-table ${dbname} >${backuppath}${dumpfile}.sql 2>> ${logfile}"

  echo $(date +%Y-%m-%d%t%A%t%T)" Beginning zip ${backuppath}${dumpfile}.sql" >>${logfile}
  tar zcvf ${dumpfile}.tar.gz ${dumpfile}.sql && rm ${dumpfile}.sql 2>> ${logfile}
  echo "backup file name:"${dumpfile}".tar.gz" >>${logfile}
  echo -e "-------"$(date +%Y-%m-%d%t%A%t%T)" Ending database "${dbname}" backup-------\n" >>${logfile}

}
#刪除過時文件
rm_oldfile(){
find /home/dbback/sqlzip/ -type f -mtime +3 -exec rm {} \;
}
cd ${backuppath}
back_db
rm_oldfile

若是執行報錯,說明文件格式錯誤了,看這個:https://www.cnblogs.com/yuwensong/p/10942623.htmlhtml

相關文章
相關標籤/搜索