Linux 下mysql的定時備份
阿新 • • 發佈:2018-11-19
在實際專案中,資料庫是要經常備份的,就是為了防止突發情況,前段時間,我的資料庫就遭遇了入侵要支付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
之後看結果就行,