#!/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