1. 程式人生 > 其它 >mysql資料庫備份

mysql資料庫備份

需求

需要對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的方法

2、linux實現mysql資料庫每天自動備份定時備份

3、shell指令碼每天自動備份mysql資料庫

4、Linux crontab 命令

5、linux:基本指令

作者: Pam

出處: https://www.cnblogs.com/pam-sh/>

關於作者:網安在讀

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出, 原文連結

如有問題, 可郵件([email protected])諮詢.