欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

在生產(chǎn)環(huán)境中,數(shù)據(jù)庫是核心資產(chǎn)之一,定期備份數(shù)據(jù)庫可以有效防止意外數(shù)據(jù)丟失。本文將分享一份 MySQL 定時備份腳本,并講解如何通過 crontab 實現(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ù)庫生成獨立文件,命名規(guī)則為:數(shù)據(jù)庫名_日期時間.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 定時執(zhí)行

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

編輯 Crontab

crontab -e

添加定時任務(wù)

例如每天凌晨 2 點備份:

0 2 * * * /usr/local/bin/mysql_backup.sh
  • 0 2 * * * 表示每天 02:00 執(zhí)行。
  • 可以根據(jù)需求修改時間,例如每小時備份:
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 實現(xiàn)備份失敗通知。

多服務(wù)器備份

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

總結(jié)

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

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

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

相關(guān)文章

  • Linux SSHD啟動失敗:OpenSSL版本不匹配問題分析與解決方法

    Linux SSHD啟動失敗:OpenSSL版本不匹配問題分析與解決方法

    在 Linux 服務(wù)器上,sshd 可能因 OpenSSL 版本不匹配而啟動失敗,本篇文章將詳細(xì)分析該錯誤的原因,并提供多種解決方案,文中通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下
    2025-07-07
  • Linux上使用telnet連接本機(jī)IP地址端口方式

    Linux上使用telnet連接本機(jī)IP地址端口方式

    用戶需配置iptables允許本機(jī)TCP 80端口響應(yīng),輸入規(guī)則設(shè)源IP為本機(jī)以限制外部訪問,輸出規(guī)則設(shè)目標(biāo)IP為本機(jī)以確保本地連接,但telnet實際使用23端口,80端口可能為其他服務(wù),需確認(rèn)端口及規(guī)則方向
    2025-07-07
  • 開啟Selinux遇到的坑及解決

    開啟Selinux遇到的坑及解決

    這篇文章主要介紹了開啟Selinux遇到的坑及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Ubuntu無網(wǎng)絡(luò)標(biāo)識的問題及解決

    Ubuntu無網(wǎng)絡(luò)標(biāo)識的問題及解決

    這篇文章主要介紹了Ubuntu無網(wǎng)絡(luò)標(biāo)識的問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • linux下安裝配置svn獨立服務(wù)器的步驟分享

    linux下安裝配置svn獨立服務(wù)器的步驟分享

    subversion(以下簡稱svn)是近年來崛起的版本管理工具,是cvs的接班人。 svn服務(wù)器有2種運行方式:獨立服務(wù)器和借助apache。2種方式各有利弊
    2011-05-05
  • 用DNSPod和Squid打造自己的CDN (八) 測試并運行SQUID

    用DNSPod和Squid打造自己的CDN (八) 測試并運行SQUID

    想要測試SQUID是否正常,必須要先把www.naizhao.com這個域名解析到2.2.2.2這個IP上。跟上一章一樣,如果你是網(wǎng)通用戶就不需要做任何操作,DNSPod會給你返回2.2.2.2這個IP
    2013-04-04
  • Ubuntu20.04安裝搜狗輸入法的詳細(xì)步驟

    Ubuntu20.04安裝搜狗輸入法的詳細(xì)步驟

    這篇文章主要介紹了Ubuntu20.04安裝搜狗輸入法的方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • Linux環(huán)境下生成openssl證書注意細(xì)節(jié)介紹

    Linux環(huán)境下生成openssl證書注意細(xì)節(jié)介紹

    大家好,本篇文章主要講的是Linux環(huán)境下生成openssl證書注意細(xì)節(jié)介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • linux查看軟件的安裝位置簡單方法

    linux查看軟件的安裝位置簡單方法

    在本篇文章里小編給各位分享的是關(guān)于linux查看軟件的安裝位置簡單方法,有興趣的朋友們可以學(xué)習(xí)下。
    2020-03-03
  • CentOS 7搭建Linux GPU服務(wù)器的教程

    CentOS 7搭建Linux GPU服務(wù)器的教程

    這篇文章主要為大家詳細(xì)介紹了CentOS 7搭建Linux GPU服務(wù)器的教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10

最新評論