熱門分類
載入中…
目錄0%

💾 Linux rsync 備份同步實戰:自動化遠端與本機備份

    💾 Linux rsync 備份同步實戰:自動化遠端與本機備份

    在企業與個人伺服器環境中,資料備份 是確保營運不中斷的關鍵。rsync 是 Linux 上最靈活、穩定且高效的檔案同步工具之一,可用於 本機備份遠端同步增量複製自動化排程。本文將完整示範從基礎語法到自動化排程的實戰應用。

    📑 一、rsync 的核心概念

    • 差異同步(Delta Transfer):僅傳輸變更部分,節省頻寬。
    • 支援 SSH:安全傳輸資料,無須額外開放 FTP。
    • 可排程化:搭配 cronsystemd timer 自動執行。
    # 安裝 rsync
    sudo apt install rsync -y        # Debian / Ubuntu
    sudo yum install rsync -y        # CentOS / RHEL
    
    # 基本語法
    rsync -avh /source/ /backup/
    
    # 遠端同步(透過 SSH)
    rsync -avz -e "ssh -p 22" /home/user/ user@192.168.1.10:/backup/
    

    📦 二、本機備份範例:每日自動同步

    假設你要每天備份 /var/www/ 網站資料至 /mnt/backup/,可編寫如下腳本:

    # /usr/local/bin/backup_web.sh
    #!/bin/bash
    rsync -avh --delete /var/www/ /mnt/backup/www/
    echo "$(date '+%F %T') - Backup completed." >> /var/log/rsync-backup.log
    

    設定為每天凌晨執行:

    # 使用 cron
    sudo crontab -e
    0 2 * * * /usr/local/bin/backup_web.sh
    
    # 或使用 systemd timer(更穩定)
    sudo systemctl edit --force --full backup.service
    sudo systemctl edit --force --full backup.timer
    

    🌐 三、遠端同步:跨伺服器增量備份

    rsync 可結合 SSH 金鑰免密登入,安全同步到遠端機房或雲端備援主機。

    # 建立金鑰與分發
    ssh-keygen -t rsa
    ssh-copy-id user@backup-server
    
    # 同步命令
    rsync -avz --progress /data/ user@backup-server:/data_backup/
    

    🧭 行動清單

    ✅ 建立 rsync 備份腳本並測試同步  
    ✅ 設定 cron 或 systemd timer 自動化排程  
    ✅ 使用 SSH 金鑰提升安全性  
    ✅ 驗證 log 記錄與同步結果  
      

    🛡️ 四、最佳化與常見錯誤

    • --delete:刪除目標端不存在的檔案(維持一致性)。
    • --exclude:排除暫存或快取目錄(如 --exclude "cache/")。
    • Permission denied → 檢查 SSH 金鑰與目錄權限。
    • No space left on device → 加入 --max-size 限制檔案大小。

    📘 結語

    rsync 是 Linux 系統維運中不可或缺的工具,能在不影響服務的情況下快速同步資料。搭配 systemdcron 自動化排程,可大幅降低人工維護負擔,確保資料安全無虞。


    🔗 延伸閱讀

    — WWFandy・主題筆記

    🔗 分享這篇 LINE Facebook X

    沒有留言:

    字級