Linux 網站搬家(遷移)是伺服器管理中最常見的操作之一,主要分為「檔案搬移」與「資料庫遷移」兩大部分。 在實務上,通常會先進行網站打包備份,再透過 SCP 或 RSYNC 將資料傳輸到新主機,最後進行解壓與還原。
📌 開始網站搬家前的必要條件(SSH 連線確認)
在進行 Linux 網站搬家之前,必須先確認 SSH 連線正常,因為 SCP 與 RSYNC 都是透過 SSH 進行資料傳輸。 如果 SSH 無法連線,將會導致整個搬家流程失敗。
👉 如果你遇到 SSH 無法連線問題,可以先參考這篇完整排錯教學:
Linux SSH 無法連線排錯教學SCP 網站搬家完整流程|Linux 網站打包、壓縮與解壓實戰
SCP 是 Linux 中最常見的檔案傳輸工具,適合用於小型網站搬家或單次備份。但在實務操作中,不建議直接搬移整個資料夾,而是應該先進行「網站打包」,再進行傳輸,最後在新主機解壓縮還原。
本範例環境如下:舊主機 IP 為 192.168.0.5,網站目錄為 /var/www/html/website_old,包含 images 與 userfiles。新主機 IP 為 192.168.0.10,目標路徑為 /var/www/html/website_new。
網站打包流程(非常重要)
cd /var/www/html/website_old
tar czvf website_backup.tar.gz images userfiles
此步驟會將網站圖片與使用者上傳資料打包成單一檔案 website_backup.tar.gz,這個動作稱為「網站打包」,可以有效減少 SCP 傳輸錯誤。
Linux 安裝 SCP 指令(OpenSSH Client)
大多數 Linux 發行版都已內建 SCP(Secure Copy) 指令,
如果輸入 scp 出現找不到指令,可依照以下方式安裝。
CentOS / Rocky Linux / AlmaLinux
sudo yum install openssh-clients -y
Ubuntu / Debian
sudo apt update
sudo apt install openssh-client -y
Arch Linux
sudo pacman -S openssh
確認 SCP 是否安裝成功
scp -V
若系統成功顯示 OpenSSH 版本資訊,即代表 SCP 已可正常使用。
案例一:SCP 傳輸到新主機暫存區
scp website_backup.tar.gz root@192.168.0.10:/tmp/
這裡會先將檔案傳到 /tmp 暫存區,避免直接影響網站目錄結構,是標準 Linux 網站搬家流程。
案例二:登入新主機並解壓
ssh root@192.168.0.10
cd /var/www/html/website_new/
tar xzvf /tmp/website_backup.tar.gz
解壓後會自動還原 images 與 userfiles,完成網站資料還原。
案例三:清除暫存檔
rm -f /tmp/website_backup.tar.gz
避免佔用磁碟空間,這是正式環境必做步驟。
🆚 SCP vs RSYNC 指令詳細區別(網站搬家必看)
在 Linux 網站搬家實務中,SCP 與 RSYNC 是最常見的兩種工具,但用途完全不同。 以下表格可以幫助你快速判斷應該使用哪一種方式。
| 項目 | SCP(Secure Copy) | RSYNC(Remote Sync) |
|---|---|---|
| 核心功能 | 單向檔案複製 | 雙端同步 + 備份 |
| 使用概念 | 一次性「搬檔案」 | 持續「同步資料」 |
| 適合情境 | 小型網站搬家 / 單次備份 | 正式網站搬家 / 大型資料同步 |
| 是否支援續傳 | ❌ 不支援 | ✔ 支援(斷線可續傳) |
| 是否只傳變更 | ❌ 不支援 | ✔ 只同步變更部分 |
| 傳輸效率 | 一般(每次全傳) | ⭐ 高(增量傳輸) |
| 指令複雜度 | 簡單 | 中等 |
| 大型網站適用 | ❌ 不建議 | ✔ 非常適合 |
| 備份用途 | 一次性備份 | 長期備份 / 排程備份 |
| 網站搬家推薦度 | ⭐⭐ | ⭐⭐⭐⭐⭐ |
結論:
SCP 適合簡單搬檔案,而 RSYNC 才是專業網站搬家與長期備份工具。
RSYNC 網站搬家與同步備份實戰
RSYNC 是比 SCP 更進階的工具,適合大型網站搬家與長期備份。它的最大優勢是「只同步變更檔案」,因此非常適合正式環境使用。
RSYNC 安裝指令
yum install -y rsync
案例一:同步 images
rsync -avzP /var/www/html/website_old/images/ root@192.168.0.10:/var/www/html/website_new/images/
案例二:同步 userfiles
rsync -avzP /var/www/html/website_old/userfiles/ root@192.168.0.10:/var/www/html/website_new/userfiles/
案例三:同步整站
rsync -avzP /var/www/html/website_old/ root@192.168.0.10:/var/www/html/website_new/
RSYNC 非常適合網站搬家後的持續同步,例如更新圖片或資料時,只會傳輸變更部分,大幅降低頻寬與時間成本。
# RSYNC 特性
- 增量同步
- 支援續傳
- 適合大型網站
- 可用於備份系統
📌 網站搬家後的重要步驟:權限與使用者設定
在 Linux 網站搬家完成後,最常見的問題就是檔案權限錯誤,例如網站無法顯示、403 Forbidden 或資料夾無法存取。 這通常是因為 user/group 權限未正確設定所導致。
👉 如果你遇到權限問題,可以參考這篇完整教學:
Linux 使用者與權限管理完整教學網站搬家完成後,如果遇到網站錯誤、頁面 500 或 nginx / apache 報錯,可以透過 log 進行分析。 這時候 Linux grep 指令可以快速搜尋錯誤關鍵字,幫助你定位問題來源。
👉 建議使用 grep 來進行錯誤日誌分析:
Linux grep 指令教學(日誌與錯誤排查)FAQ 常見問題
Linux 網站搬家一定要用 scp 嗎?
SCP 並不是唯一選擇,雖然適合小型網站搬移,但正式環境建議使用 rsync,因為它支援續傳與增量同步,可以減少傳輸失敗風險並提升效率。
網站搬家為什麼要先做網站打包?
網站打包可以將多個資料夾整合成單一檔案,方便傳輸與備份,也能降低 SCP 傳輸錯誤,是 Linux 網站搬家標準流程之一。
rsync 和 scp 最大差別是什麼?
SCP 是單向複製工具,而 RSYNC 是同步工具,rsync 只會傳輸變更檔案,因此更適合網站搬家與長期備份作業。
Linux 網站搬家會影響網站運作嗎?
如果在高流量時操作可能會有短暫影響,建議在離峰時間進行搬家,並先完成備份與測試,確保資料完整性。
資料庫遷移需要一起做嗎?
需要,網站搬家除了檔案外,還必須同步 MySQL 或 MariaDB 資料庫,否則網站會出現資料缺失或無法登入的情況。
rsync 可以用來做備份嗎?
可以,rsync 非常適合做定期備份,因為它只會同步變更過的資料,可以大幅節省時間與頻寬,是企業常用方案。
