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

Linux下MySQL數(shù)據(jù)庫定時(shí)備份腳本與Crontab配置教學(xué)

 更新時(shí)間:2025年09月02日 10:12:49   作者:XMYX-0  
在生產(chǎn)環(huán)境中,數(shù)據(jù)庫是核心資產(chǎn)之一,定期備份數(shù)據(jù)庫可以有效防止意外數(shù)據(jù)丟失,本文將分享一份 MySQL 定時(shí)備份腳本,并講解如何通過 crontab 實(shí)現(xiàn)自動化,感興趣的小伙伴可以參考一下

在生產(chǎn)環(huán)境中,數(shù)據(jù)庫是核心資產(chǎn)之一,定期備份數(shù)據(jù)庫可以有效防止意外數(shù)據(jù)丟失。本文將分享一份 MySQL 定時(shí)備份腳本,并講解如何通過 crontab 實(shí)現(xiàn)自動化。

文章參考:MySQL 數(shù)據(jù)庫本地及異地備份:全面指南

上邊這個鏈接里邊針對mysql的賬戶密碼儲存更為安全些,適合自己的最好 

備份腳本詳解

下面是一份示例 Bash 腳本 mysql_backup.sh

#!/bin/bash

# ---------------- 配置區(qū)域 ----------------
# MySQL用戶名
MYSQL_USER="user"
# MySQL密碼
MYSQL_PASS="password"
# MySQL主機(jī),默認(rèn)localhost
MYSQL_HOST="localhost"
# 備份存儲路徑
BACKUP_PATH="/data/mysql_backup"
# 備份保留天數(shù)
RETENTION_DAYS=7
# 備份日志
BACKUP_LOG="$BACKUP_PATH/back.log"

# 多個數(shù)據(jù)庫,用空格分隔
DATABASES=("db1" "db2" "db3")
# -----------------------------------------

# 獲取當(dāng)前日期
DATE=$(date +"%Y%m%d_%H%M%S")

# 確保備份目錄存在
mkdir -p "$BACKUP_PATH"

# 遍歷數(shù)據(jù)庫進(jìn)行備份
for DB in "${DATABASES[@]}"; do
    BACKUP_FILE="$BACKUP_PATH/${DB}_${DATE}.sql.gz"
    echo "Backing up database: $DB -> $BACKUP_FILE"
    mysqldump -h "$MYSQL_HOST" -u "$MYSQL_USER" -p"$MYSQL_PASS" "$DB" | gzip > "$BACKUP_FILE"
    
    if [ $? -eq 0 ]; then
        echo "${DATE} Backup of $DB completed successfully."  >> ${BACKUP_LOG}
    else
        echo "${DATE} Backup of $DB failed!" >> ${BACKUP_LOG}
    fi
done

# 刪除7天前的備份
find "$BACKUP_PATH" -type f -name "*.sql.gz" -mtime +$RETENTION_DAYS -exec rm -f {} \;
echo "${DATE} Old backups older than $RETENTION_DAYS days removed." >> ${BACKUP_LOG}

腳本功能說明

1.配置區(qū)域

  • MYSQL_USER、MYSQL_PASSMYSQL_HOST 用于數(shù)據(jù)庫連接。
  • BACKUP_PATH 指定備份文件存放路徑。
  • RETENTION_DAYS 控制備份保留天數(shù)。
  • DATABASES 列出需要備份的數(shù)據(jù)庫列表。

2.備份操作

  • 腳本通過 mysqldump 將數(shù)據(jù)庫導(dǎo)出,并用 gzip 壓縮。
  • 每個數(shù)據(jù)庫生成獨(dú)立文件,命名規(guī)則為:數(shù)據(jù)庫名_日期時(shí)間.sql.gz

3.日志記錄

成功或失敗情況會記錄到 $BACKUP_LOG 日志文件中。

4.清理舊備份

使用 find 命令刪除超過 $RETENTION_DAYS 天的備份文件,保證磁盤空間不會被占滿。

授權(quán)與可執(zhí)行權(quán)限

保存腳本為 /usr/local/bin/mysql_backup.sh 后,需要賦予執(zhí)行權(quán)限:

chmod +x /usr/local/bin/mysql_backup.sh

使用 Crontab 定時(shí)執(zhí)行

通過 crontab 可以實(shí)現(xiàn)腳本自動執(zhí)行,無需手動備份。

編輯 Crontab

crontab -e

添加定時(shí)任務(wù)

例如每天凌晨 2 點(diǎn)備份:

0 2 * * * /usr/local/bin/mysql_backup.sh
  • 0 2 * * * 表示每天 02:00 執(zhí)行。
  • 可以根據(jù)需求修改時(shí)間,例如每小時(shí)備份:
0 * * * * /usr/local/bin/mysql_backup.sh

查看 Crontab 配置

crontab -l

備份文件與日志示例

假設(shè)今天備份了 db1、db2,備份目錄可能如下:

/data/mysql_backup/
├── db1_20250901_020000.sql.gz
├── db2_20250901_020000.sql.gz
└── back.log

日志文件 back.log 示例:

20250901_020000 Backup of db1 completed successfully.
20250901_020000 Backup of db2 completed successfully.
20250901_020001 Old backups older than 7 days removed.

優(yōu)化建議

安全性

避免在腳本中明文存儲密碼,可使用 MySQL 配置文件 ~/.my.cnf 存儲賬戶信息。

郵件通知

可結(jié)合 mailsendmail 實(shí)現(xiàn)備份失敗通知。

多服務(wù)器備份

若有多臺 MySQL 實(shí)例,可通過 SSH 同步備份到集中存儲服務(wù)器。

總結(jié)

本文提供了一份 MySQL 自動備份腳本,結(jié)合 crontab 實(shí)現(xiàn)定時(shí)任務(wù),確保數(shù)據(jù)庫數(shù)據(jù)安全與業(yè)務(wù)連續(xù)性。通過日志記錄和舊備份清理,可以有效監(jiān)控備份情況并節(jié)約磁盤空間。

定期備份是運(yùn)維必備技能,建議在生產(chǎn)環(huán)境中盡早部署并驗(yàn)證恢復(fù)流程,保證關(guān)鍵數(shù)據(jù)萬無一失。

到此這篇關(guān)于Linux下MySQL數(shù)據(jù)庫定時(shí)備份腳本與Crontab配置教學(xué)的文章就介紹到這了,更多相關(guān)MySQL定時(shí)備份內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Linux 下rpm命令參數(shù)詳解

    Linux 下rpm命令參數(shù)詳解

    linux下的rpm常用命令,主要是用來安裝rmp包,是linux下比較方便的東西
    2008-06-06
  • CentOS 5 上安裝yum的方法

    CentOS 5 上安裝yum的方法

    用過CentOS的人肯定有點(diǎn)不解,CentOS上自帶yum,為啥還要安裝?因?yàn)楹芏嘞到y(tǒng)上并不一定安裝了yum,尤其是vps上,我給客戶的vps就經(jīng)常沒有yum,所以對于已經(jīng)依賴yum的人來說,那還得安裝一下的。
    2010-05-05
  • Linux鏈表操作方式

    Linux鏈表操作方式

    這篇文章主要介紹了Linux鏈表操作方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • linux mint 18虛擬機(jī)下設(shè)置1080P分辨率的方法

    linux mint 18虛擬機(jī)下設(shè)置1080P分辨率的方法

    下面小編就為大家?guī)硪黄猯inux mint 18虛擬機(jī)下設(shè)置1080P分辨率的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • linux?vim一些實(shí)用的快捷鍵和方法分享

    linux?vim一些實(shí)用的快捷鍵和方法分享

    這篇文章主要介紹了linux?vim一些實(shí)用的快捷鍵和方法,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Linux中在防火墻中開啟80端口方法示例

    Linux中在防火墻中開啟80端口方法示例

    這篇文章主要介紹了Linux中在防火墻中開啟80端口方法示例,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-10-10
  • 詳解虛擬機(jī)中CentOS 7 網(wǎng)絡(luò)和ssh的配置

    詳解虛擬機(jī)中CentOS 7 網(wǎng)絡(luò)和ssh的配置

    這篇文章主要介紹了詳解虛擬機(jī)中CentOS 7 網(wǎng)絡(luò)和ssh的配置,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • 最新評論

    普定县| 浑源县| 石景山区| 兴宁市| 渝中区| 女性| 中方县| 黄浦区| 宽甸| 张家界市| 吴桥县| 新化县| 保亭| 阳东县| 长武县| 宁乡县| 中卫市| 离岛区| 海安县| 巍山| 且末县| 天祝| 大同县| 同心县| 金阳县| 炉霍县| 利津县| 罗山县| 昌江| 沙田区| 郧西县| 石家庄市| 蓝山县| 故城县| 渝北区| 陇西县| 普格县| 门头沟区| 交城县| 金乡县| 大同市|