1. 程式人生 > >Linux 下mysql的定時備份

Linux 下mysql的定時備份

在實際專案中,資料庫是要經常備份的,就是為了防止突發情況,前段時間,我的資料庫就遭遇了入侵要支付B特比的,結果資料全沒了,哎,還好當時只是個測試庫,不過有了這次危機,也就開始意識到了這個問題了。

先寫個測試的資料庫備份命令:

#!/bin/sh
DB_USER="root"
DB_PASS="1234"
DB_DATA_NAME="hzl"
BakDir="/data/mysql-data-back"
echo "/usr/bin/mysqldump"
echo "-------------------------------------------" >> $BakDir 
echo $(date +"%y-%m-%d %H:%M:%S") >> $BakDir 

cd $BakDir
/usr/bin/mysqldump --no-defaults -u$DB_USER -p$DB_PASS $DB_DATA_NAME|gzip  > $BakDir/db_`date +%F`.gz

exit 0

 命令如上,直接寫成的是shell檔案,檔案執行成功,能在目錄下手動生成備份的.gz檔案。

這裡要注意:.sh檔案最開始是執行不了的,

chmod +x sqlAutoBak.sh 

 好,上面的比較簡單,開始下面的重頭戲,讓指令碼每天自動執行。

1.確認crontab是否安裝

crontab -l 

 能看到執行指令碼的列表,說明安裝成功。如果沒有沒有的話,網上隨便找個安裝教程就行。

[[email protected]_0_4_centos ~]# crontab -l
*/1 * * * * /usr/local/qcloud/stargate/admin/start.sh > /dev/null 2>&1 &

2.將備份指令碼加入到crontab服務中

crontab -e 

按下 a 鍵進入到編輯模式

輸入 0 */1 * * * /home/work/start-service.sh

同時按下 ctrl+c 退出編輯模式

按下 shift+: 輸入 wq 退出 crontab

之後看結果就行,