mysql定時備份腳本

怎麼寫一個mysql的定時備份腳本呢?下面來分步說一下:
選擇要備份數據庫的目錄 備用用戶必須具備對該目錄有寫入的權限
備份需要的參數 --opt   -R    --default-character-set   命名方式

3 備份的日誌文件位置 記錄備份內容、備份時間 、備份耗時 

計劃任務 每天定時備份

dbbackup.sh拷貝到/usr/backup

添加計劃任務,每天凌晨兩點執行備份

 sudo crontab -e 

分 時 日 月 周 

00 02 * * * sudo sh /usr/backup/dbbackup.sh
 

備份腳本內容:

#!/bin/bash

#標記程序開始時間

date_start=`date|awk -F"[ :]" '{print $4*3600 + $5*60 +$6}'`

#進入要備份的目錄

cd /usr/backup

#數據庫備份命令,包括存儲過程,使用utf8字符編碼,以"global_日期"命名

/usr/local/mysql/bin/mysqldump --opt -R -uroot -proot --default-character-set=utf8 global>global_$(date +%Y%m%d).sql

#/將數據庫備份文件進行壓縮

tar zcvf global_$(date +%Y%m%d).tar.gz global_$(date +%Y%m%d).sql

#備份完後將原文件刪除

rm -rf global_$(date +%Y%m%d).sql       

#刪除備份時間超過100天的備份文件

rm -rf global_$(date -d -100day +%Y%m%d ).tar.gz

#標記程序結束時間

date_end=`date|awk -F"[ :]" '{print $4*3600 + $5*60 +$6}'`

#計算程序執行時間

time=`expr "$date_end" - "$date_start"`

#生成日誌文件

echo 'backup database global in' $(date +%Y-%m-%d%H:%M:%S) >> /usr/backup/dbbackup.log

#結束

echo 'Database backup time' $time >> /usr/backup/dbbackup.log

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章