利用系統 crontab 定時執行備份腳本,按日期歸檔,構建零成本自動化備份機制。
mkdir /mysqldata
/usr/sbin/bakMySQL#!/bin/bash
rq=$(date +%Y%m%d)
# 方案一:直接打包數據目錄(需停庫或鎖表)
# tar zcvf /mysqldata/mysql$rq.tar.gz /var/lib/mysql
# 方案二:mysqldump 邏輯備份(推薦,無需停庫)
mysqldump --all-databases -u root -pYourPassword > /mysqldata/mysql$rq.sql
# 壓縮節省空間
gzip /mysqldata/mysql$rq.sql
注意:/var/lib/mysql 為數據目錄,部分環境為 /usr/local/mysql/data,請按實際調整。
chmod +x /usr/sbin/bakMySQL
vi /etc/crontab
# 每天凌晨 3 點執行
0 3 * * * root /usr/sbin/bakMySQL
/etc/rc.d/init.d/crond restart
tar 打包前務必停止 MySQL 或執行 FLUSH TABLES WITH READ LOCK,否則恢復時可能損壞。mysqldump 邏輯備份無需停庫,支援單表、單庫、全庫彈性備份,生產環境首選。mysql20240619.sql.gz),便於留存與查找。