免费在线a视频-免费在线观看a视频-免费在线观看大片影视大全-免费在线观看的视频-色播丁香-色播基地

用 Shell 腳本實現 MySQL 數據庫每日自動備份

:2025年05月16日 web攻防
分享到:

本文介紹了一種用 Shell 腳本自動備份 MySQL 數據庫的方法。文章詳細解釋了為什么要備份數據庫、備份思路、準備備份文件、編寫腳本文件和執行腳本等步驟,并提供了一步全注釋的 Shell 腳本示例。

本文帶你一步步動手用 Shell 腳本自動備份 MySQL 數據庫,即使你是剛入門的小白也能學會。從環境準備到腳本編寫到定時執行,保姆級講解!

一、為什么需要數據庫備份?

數據庫是 Web 應用的核心資產,一旦丟失,后果不堪設想。比如:

  • 博客數據沒了?

  • 訂單信息丟了?

  • 用戶賬號密碼沒了?

所以我們要定期備份,哪怕出了問題也能快速恢復。

二、備份思路與目標

我們希望:

  1. 每天自動執行一次備份

  2. 備份文件保存到 /home/backup/

  3. 文件名包含日期,如:mydb_2025-05-15.sql

  4. 自動壓縮為 .tar.gz 節省空間

  5. 保留最近 7 天的備份,自動清理舊文件

三、準備工作(一步不落)

檢查是否已安裝 mysqldump

bash

which mysqldump

如果輸出路徑如 /usr/bin/mysqldump,說明已安裝。

如果沒有,使用以下命令安裝(centos):

bash

sudo yum update

sudo yum install mysql-client

四、Shell 腳本編寫(全注釋)

創建腳本文件:

bash

nano /home/backup/mysql_backup.sh

粘貼以下內容

bash

#!/bin/bash

# 數據庫信息配置

DB_USER="root"          # 數據庫用戶名

DB_PASSWORD="123456"    # 數據庫密碼

DB_NAME="mydb"          # 數據庫名稱

# 備份保存路徑

BACKUP_DIR="/home/backup"

DATE=$(date +%F)

FILENAME="${DB_NAME}_${DATE}.sql"

TARFILE="${FILENAME}.tar.gz"

# 創建備份目錄(如果不存在)

mkdir -p "$BACKUP_DIR"

# 開始備份

echo "[$(date)] 開始備份數據庫 $DB_NAME ..."

mysqldump -u$DB_USER -p$DB_PASSWORD $DB_NAME > "$BACKUP_DIR/$FILENAME"

# 壓縮備份

tar -czf "$BACKUP_DIR/$TARFILE" -C "$BACKUP_DIR" "$FILENAME"

rm "$BACKUP_DIR/$FILENAME"

echo "[$(date)] 備份完成:$TARFILE"

# 自動刪除7天前的舊備份

find "$BACKUP_DIR" -name "${DB_NAME}_*.tar.gz" -mtime +7 -exec rm {} \;

echo "[$(date)] 清理7天前備份完成"

保存并退出(Ctrl + O → 回車 → Ctrl + X)

五、添加執行權限

bash

chmod +x /home/backup/mysql_backup.sh

六、設置定時任務(Crontab)

讓腳本每天凌晨 2 點自動執行:

bash

crontab -e

添加以下一行:

bash

0 2 * * * /home/backup/mysql_backup.sh >> /home/backup/backup.log 2>&1

這表示每天 2 點執行腳本,并把日志寫入 backup.log。

七、執行效果示例

進入備份目錄:

bash

cd /home/backup

ls -la

你將看到類似這些文件:

pgsql

mydb_2025-05-13.sql.tar.gz

mydb_2025-05-14.sql.tar.gz

mydb_2025-05-15.sql.tar.gz

backup.log

八、小知識點補充 

命令

作用說明

mysqldumpMySQL 官方提供的數據庫備份工具

tar -czf壓縮文件為 .tar.gz 格式

find -mtime +7查找7天前的文件

crontabLinux 的定時任務工具

九、常見問題解答

Q1:密碼會不會泄露?

是明文寫入腳本,但文件權限設置好就不會有問題(chmod 700)。如需更安全方式,建議用 .my.cnf 配置隱藏密碼。

Q2:能備份所有數據庫嗎?

可以,將 mysqldump 替換成:

bash

mysqldump -u$DB_USER -p$DB_PASSWORD --all-databases > all_$(date +%F).sql

總結

恭喜你!現在你已經完成了一個自動化數據庫備份系統,再也不用擔心數據突然丟失啦!

今 日 收 獲

  • 熟悉了 mysqldump 用法

  • 學會用 Shell 腳本打包壓縮

  • 搞懂了 Linux 的定時任務 cron

  • 實現了自動清理舊文件

原諒來源:https://mp.weixin.qq.com/s/YmbN5q_snqZKd4zGd1_6FQ

[我要糾錯]
[編輯:宋聰喬 &發表于江蘇]
關鍵詞: 本文 步步 手用 Shell 腳本

來源:本文內容搜集或轉自各大網絡平臺,并已注明來源、出處,如果轉載侵犯您的版權或非授權發布,請聯系小編,我們會及時審核處理。
聲明:江蘇教育黃頁對文中觀點保持中立,對所包含內容的準確性、可靠性或者完整性不提供任何明示或暗示的保證,不對文章觀點負責,僅作分享之用,文章版權及插圖屬于原作者。

點個贊
0
踩一腳
0

您在閱讀:用 Shell 腳本實現 MySQL 數據庫每日自動備份

Copyright©2013-2025 ?JSedu114 All Rights Reserved. 江蘇教育信息綜合發布查詢平臺保留所有權利

蘇公網安備32010402000125 蘇ICP備14051488號-3技術支持:南京博盛藍睿網絡科技有限公司

南京思必達教育科技有限公司版權所有   百度統計

主站蜘蛛池模板: 亚洲综合色一区 | 在线视频综合网 | 中文字幕丝袜 | 日本三级香港三级三级人 | 国产一区二区三区欧美 | 六度国产福利午夜视频黄瓜视频 | 2022精品福利在线小视频 | 欧美巨大xxxx做受孕妇视频 | 国产二三区 | 日韩精品国产自在久久现线拍 | 丝袜综合网 | 97视频在线免费 | 毛片在线免费视频 | 日本不卡视频一区二区三区 | 在线亚洲激情 | 黄色网址视频在线观看 | 日本特级淫片免费看 | 韩日黄色片 | 超91视频| 一级特黄特黄的大片免费 | 日韩网站在线观看 | 男女做爽爽视频免费观看 | 91精品在线视频观看 | 中国免费一级毛片 | 91亚洲视频在线观看 | 美日韩一区二区三区 | 黑丝美足 | 男女羞羞的视频网站在线观看 | 两个人看的www视频中文字幕 | 在线永久免费播放视频 | 伊人国产在线播放 | 成年人福利视频 | 日韩国产成人精品视频 | 日韩一区二区三区不卡 | 亚洲欧美日产综合在线看 | 成人福利在线播放 | 欧美成人精品久久精品 | 免费a在线看 | 伊人中文 | 亚洲欧美日韩一区高清中文字幕 | 免费看的一级毛片 |
最熱文章
最新文章
  • 阿里云上云鉅惠,云產品享最低成本,有需要聯系,
  • 卡爾蔡司鏡片優惠店,鏡片價格低
  • 蘋果原裝手機殼