mysql資料庫備份
阿新 • • 發佈:2021-08-01
需求
需要對mysql資料庫,每天定時備份
方法
主要方式是:利用crontab工具執行shell指令碼,shell指令碼中編寫備份命令。
如果沒有crontab,就先安裝crontab。
安裝crontab
1、Crontab是什麼?
“任務計劃”,可以將任何指令碼、程式或文件安排在某個最方便的時間執行。通俗的講就是定時執行某個指令碼、程式。
常用於:定時關機、定時檢查更新、定時對系統配置、資料庫、日誌進行備份、定時清理垃圾檔案
2、檢測是否已安裝
crontab --help
3、具體安裝請參考1
編寫指令碼
1、建立備份目錄
mkdir DB-mysql
2、指令碼模板
#!/bin/sh # Database info DB_USER="batsing" DB_PASS="batsingpw" DB_HOST="localhost" DB_NAME="timepusher" # Others vars BIN_DIR="/usr/bin" #the mysql bin path BCK_DIR="/mnt/mysqlBackup" #the backup file directory DATE=`date +%F` # TODO # /usr/bin/mysqldump --opt -ubatsing -pbatsingpw -hlocalhost timepusher > /mnt/mysqlBackup/db_`date +%F`.sql $BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS -h$DB_HOST $DB_NAME > $BCK_DIR/db_$DATE.sql #還原資料庫 #用mysql-front匯入前一天的 *.sql 檔案即可恢復資料
開放許可權:
chmod 777 sqlAutoBak.sh
設定計劃
1、執行命令
crontab -e
2、新增計劃
*/1 * * * * /usr/local/include/wx-code/sqlAutoBak.sh
意思是:每一分鐘執行一次shell指令碼
30 3 * * * /usr/local/include/wx-code/sqlAutoBak.sh
意思是:每天凌晨三點半執行一次shell指令碼
更多時間格式:
# 例如:db_2021-08-01.sql.zip #DATE=`date +%F` # 例如:db_20210801_161156.sql.zip #DATE=`date +%Y%m%d_%H%M%S` # 例如:db_2021-08-01 16:17:37.sql.zip DATE=`date "+%F %T"`
參考
1、CentOS下使用yum命令安裝計劃任務程式crontab的方法
作者: Pam
出處: https://www.cnblogs.com/pam-sh/>
關於作者:網安在讀
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出, 原文連結