Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

CentOS 自動備份腳本實戰:網站目錄 + MySQL 數據庫定時打包上傳 FTP

編輯:關於伺服器

應用場景

CentOS 5.4 運行 LNMP 環境(Nginx + MySQL + PHP),網站數據量大,需實現每周自動備份網站文件與數據庫,打包後上傳至遠端 FTP 空間,本地不保留備份文件。

環境變量定義

  • 網站目錄:/home/www
  • MySQL 二進制路徑:/usr/local/mysql/bin
  • 數據庫:levil
  • FTP 伺服器:ftphost(需替換為實際 IP/域名、用戶名、密碼)

完整備份腳本 /home/backup.sh

#!/bin/bash
cd /home

# 1. 網站備份
WebBakName=web_$(date +%y%m%d).tar.gz
tar zcvf $WebBakName www

# 2. 數據庫備份
SqlBakName=sql_$(date +%y%m%d).tar.gz
/usr/local/mysql/bin/mysqldump -uusername -ppassword levil > backup.sql
tar zcvf $SqlBakName backup.sql

# 3. FTP 上傳(非交互模式)
ftp -nv ftphost << EOF
user ftpname ftppass
put $WebBakName
put $SqlBakName
quit
EOF

# 4. 清理本地臨時文件
rm -f backup.sql $WebBakName $SqlBakName

腳本解析

  1. 命名規則:web_YYMMDD.tar.gz / sql_YYMMDD.tar.gz,便於按日期識別
  2. mysqldump:直接導出 SQL,再壓縮,避免大文件傳輸慢
  3. FTP Here Document:<< EOF 實現非交互自動登入上傳
  4. 安全建議:生產環境請將密碼寫入 ~/.my.cnf 或使用 --login-path,避免明文暴露

部署定時任務

chmod +x /home/backup.sh
crontab -e
# 每周一上午 5 點執行
00 05 * * 1 /home/backup.sh

驗證與調優建議

  • 先將時間改為最近幾分鐘測試腳本是否正常跑通
  • 數據更新頻繁的業務建議改為每日備份(0 2 * * *)
  • 若 FTP 空間有限,可在腳本末尾加入遠端保留策略(如刪除 7 天前備份)
  • 建議配合 mailx 發送執行結果郵件通知
Copyright © Windows教程網 All Rights Reserved