最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL數(shù)據(jù)庫(kù)自動(dòng)備份的實(shí)用方法

 更新時(shí)間:2026年07月12日 09:14:57   作者:梔椩  
經(jīng)歷數(shù)據(jù)庫(kù)被黑和比特幣勒索后,深刻認(rèn)識(shí)到數(shù)據(jù)備份的重要性,本文詳細(xì)記錄如何編寫Shell腳本自動(dòng)備份MySQL數(shù)據(jù)庫(kù),并設(shè)置crontab定時(shí)任務(wù),實(shí)現(xiàn)每天自動(dòng)備份,有效防止數(shù)據(jù)丟失,跟著步驟操作,保護(hù)你的數(shù)據(jù)安全,需要的朋友可以參考下

有過一次被黑客劫持?jǐn)?shù)據(jù)庫(kù)并勒索比特幣的經(jīng)歷后,才知道數(shù)據(jù)備份的重要性

記錄一下方法

一、編寫備份腳本

創(chuàng)建一個(gè)Shell腳本文件(例如 /opt/scripts/mysql_backup.sh),內(nèi)容如下:

#!/bin/bash
# 數(shù)據(jù)庫(kù)配置
DB_USER="your_username"
DB_PASSWORD="your_password"
# 獲取所有數(shù)據(jù)庫(kù)列表(排除系統(tǒng)數(shù)據(jù)庫(kù))
DB_LIST=$(mysql -u$DB_USER -p$DB_PASSWORD -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema|mysql|sys)")
# 備份配置
BACKUP_DIR="/path/to/your/backup/directory"
DATE=$(date +"%Y%m%d")
# 創(chuàng)建日期目錄
TODAY_DIR="$BACKUP_DIR/$DATE"
mkdir -p $TODAY_DIR
# 循環(huán)備份每個(gè)非系統(tǒng)數(shù)據(jù)庫(kù)
for DB_NAME in $DB_LIST; do
    BACKUP_FILE="$TODAY_DIR/${DB_NAME}.sql.gz"
    mysqldump -u$DB_USER -p$DB_PASSWORD $DB_NAME | gzip > $BACKUP_FILE
done
# 清理30天前的舊備份
find $BACKUP_DIR -type d -name "20*" -mtime +30 -exec rm -rf {} \; 2>/dev/null

注意,以上是備份所有的非系統(tǒng)數(shù)據(jù)庫(kù)

如果想備份單個(gè)數(shù)據(jù)庫(kù),可以簡(jiǎn)單點(diǎn),如下:

#!/bin/bash
# 數(shù)據(jù)庫(kù)配置
DB_USER="your_username"
DB_PASSWORD="your_password"
DB_NAME="your_database_name"
# 備份配置
BACKUP_DIR="/path/to/your/backup/directory" # 請(qǐng)?zhí)鎿Q為你的目標(biāo)目錄
DATE=$(date +"%Y%m%d_%H%M%S")
BACKUP_FILE="$BACKUP_DIR/${DB_NAME}_backup_$DATE.sql"
# 執(zhí)行備份
mysqldump -u$DB_USER -p$DB_PASSWORD $DB_NAME > $BACKUP_FILE
# (可選)壓縮備份文件以節(jié)省空間
gzip $BACKUP_FILE
# (可選)清理超過N天的舊備份,例如保留30天
find $BACKUP_DIR -name "${DB_NAME}_backup_*.sql.gz" -mtime +30 -delete

如果想備份多個(gè)數(shù)據(jù)庫(kù),參考如下:

#!/bin/bash
# 數(shù)據(jù)庫(kù)配置
DB_USER="your_username"
DB_PASSWORD="your_password"
# 要備份的數(shù)據(jù)庫(kù)列表,用空格分隔
DB_LIST="database1 database2 database3"
# 備份配置
BACKUP_DIR="/path/to/your/backup/directory"
DATE=$(date +"%Y%m%d")
TIME=$(date +"%H%M%S")
# 創(chuàng)建日期目錄
TODAY_DIR="$BACKUP_DIR/$DATE"
mkdir -p $TODAY_DIR
# 日志文件
LOG_FILE="$BACKUP_DIR/backup.log"
# 記錄備份開始時(shí)間
echo "===== 備份開始: $(date '+%Y-%m-%d %H:%M:%S') =====" >> $LOG_FILE
# 循環(huán)備份每個(gè)數(shù)據(jù)庫(kù)
for DB_NAME in $DB_LIST; do
    BACKUP_FILE="$TODAY_DIR/${DB_NAME}_${TIME}.sql"
    COMPRESSED_FILE="${BACKUP_FILE}.gz"
    echo "正在備份數(shù)據(jù)庫(kù): $DB_NAME" >> $LOG_FILE
    # 執(zhí)行備份
    if mysqldump -u$DB_USER -p$DB_PASSWORD $DB_NAME > $BACKUP_FILE 2>> $LOG_FILE; then
        echo "  - 備份成功: $DB_NAME" >> $LOG_FILE
        # 壓縮備份文件
        if gzip -f $BACKUP_FILE; then
            echo "  - 壓縮成功: $COMPRESSED_FILE" >> $LOG_FILE
        else
            echo "  - 壓縮失敗: $BACKUP_FILE" >> $LOG_FILE
        fi
    else
        echo "  - 備份失敗: $DB_NAME" >> $LOG_FILE
    fi
done
# (可選)清理超過N天的舊備份,例如保留30天
DAYS_TO_KEEP=30
find $BACKUP_DIR -type d -name "20*" -mtime +$DAYS_TO_KEEP -exec rm -rf {} \; 2>/dev/null
echo "已清理超過${DAYS_TO_KEEP}天的舊備份" >> $LOG_FILE
# 記錄備份結(jié)束時(shí)間
echo "===== 備份完成: $(date '+%Y-%m-%d %H:%M:%S') =====" >> $LOG_FILE
echo "" >> $LOG_FILE

重要提示:請(qǐng)務(wù)必將腳本中的 your_username、your_passwordyour_database_name/path/to/your/backup/directory替換為你實(shí)際的數(shù)據(jù)庫(kù)信息和服務(wù)器目錄路徑。

二、設(shè)置腳本權(quán)限

在終端執(zhí)行以下命令,使腳本具有可執(zhí)行權(quán)限:

chmod +x /opt/scripts/mysql_backup.sh

三、配置定時(shí)任務(wù)

使用 crontab -e命令編輯當(dāng)前用戶的定時(shí)任務(wù),添加一行來設(shè)置每天自動(dòng)執(zhí)行。例如,設(shè)置為每天凌晨3點(diǎn)執(zhí)行備份:

0 3 * * * /opt/scripts/mysql_backup.sh

這行配置的含義是:在每天的第0分鐘、第3小時(shí)(即凌晨3:00)執(zhí)行一次備份腳本。

四、測(cè)試備份

bash /opt/scripts/mysql_backup.sh

如果能在備份目錄中找到備份的數(shù)據(jù)庫(kù)文件,就表明腳本文件生效了,會(huì)定時(shí)執(zhí)行,不放心的話可以第二天來看看有沒有正常備份

以上就是MySQL數(shù)據(jù)庫(kù)自動(dòng)備份的實(shí)用方法的詳細(xì)內(nèi)容,更多關(guān)于MySQL數(shù)據(jù)庫(kù)自動(dòng)備份的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

安达市| 海盐县| 时尚| 秦皇岛市| 甘孜县| 班戈县| 凭祥市| 娱乐| 石城县| 鹿泉市| 高邮市| 庆城县| 容城县| 舒城县| 定结县| 大竹县| 钟山县| 隆德县| 泽州县| 吴堡县| 沙田区| 达州市| 天等县| 靖安县| 团风县| 郑州市| 桐城市| 新泰市| 朝阳区| 边坝县| 杂多县| 罗城| 兰坪| 砚山县| 蒙阴县| 芮城县| 尼木县| 商城县| 双城市| 馆陶县| 六枝特区|