標籤:mysql mysq備份指令碼
#!/bin/bash
DBname=使用者名稱 #DB資料庫
backup_dir=/data/mysqlbackup/DataBackup #備份目錄
dbrootpwd=密碼 #DB使用者名稱root密碼:
expired_days=7 #BD備份儲存7天
LogFile=$backup_dir/db.log #記錄檔
DumpFile=$backup_dir/DB_lelaohui_$(date +%Y%m%d_%H).sql #備份資料庫檔案
NewFile=$backup_dir/DB_lelaohui_$(date +%Y%m%d_%H).tgz #新增備份資料庫檔案
OldFile=$backup_dir/DB_lelaohui_$(date +%Y%m%d --date="$expired_days days ago")*.tgz #舊的備份檔案 “7 days ago”意思是7天以前時間
[ ! -e "$backup_dir" ] && mkdir -p $backup_dir #判斷備份目錄/data/mysqlbackup/DataBackup不存在,那麼建立備份目錄
if [ -n "`ls $OldFile 2>/dev/null`" ];then #當串的長度大於0時為真(串非空),查看 2>/dev/null代表不輸出錯誤提示資訊。
/bin/rm -f $OldFile
echo "[$OldFile] Delete Old File Success" >> $LogFile
else
echo "[$OldFile] Delete Old Backup File" >> $LogFile
fi
if [ -e "$NewFile" ];then #如果新檔案存在,那麼輸出日誌為那麼不能備份
echo "`date +%Y%m%d_%H`: [$NewFile] The Backup File is exists, Can't Backup" >> $LogFile
else #否則建立新的備份檔案,進入備份路徑,壓縮新增備份資料庫檔案.tgz,刪除備份的.sql檔案。
/usr/bin/mysqldump -uroot -p$dbrootpwd -h10.66.126.90 --opt --databases dinner llh llh_bomb > $DumpFile
cd $backup_dir
tar czf $NewFile ${DumpFile##*/} >> $LogFile 2>&1 #${file##*/}:刪掉最後一個/ 及其左邊的字串:my.file.txt 壓縮新備份資料庫,並刪除.sql資料庫
echo "`date +%Y%m%d_%H`: [$NewFile] Backup success ">> $LogFile #追加列印備份成功的日誌
/bin/rm -f $DumpFile
fi
mysql 備份指令碼