Linux 網站搬家(遷移)是伺服器管理中最常見的操作之一,主要分為「檔案搬移」與「資料庫遷移」兩大部分。在實務上,通常會先進行網站打包備份,再透過 SCP 或 RSYNC 將資料傳輸到新主機,接著還原資料庫,最後確認權限設定是否正確。本文完整說明檔案搬移與資料庫遷移的實戰指令,並比較SCP與RSYNC的差異,協助你安全完成一次Linux網站搬家。
文章目錄
📌 開始網站搬家前的必要條件(SSH連線確認)
在進行 Linux 網站搬家之前,必須先確認 SSH 連線正常,因為 SCP 與 RSYNC 都是透過 SSH 進行資料傳輸。如果 SSH 無法連線,將會導致整個搬家流程失敗。
可以先用以下指令快速測試新主機的 SSH 連線是否正常:
ssh root@192.168.0.10 "echo 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 與 RSYNC 功能差異對照| 項目 | SCP(Secure Copy) | RSYNC(Remote Sync) |
|---|---|---|
| 核心功能 | 單向檔案複製 | 雙端同步+備份 |
| 使用概念 | 一次性「搬檔案」 | 持續「同步資料」 |
| 適合情境 | 小型網站搬家/單次備份 | 正式網站搬家/大型資料同步 |
| 是否支援續傳 | 不支援 | 支援(斷線可續傳) |
| 是否只傳變更 | 不支援 | 只同步變更部分 |
| 傳輸效率 | 一般(每次全傳) | 高(增量傳輸) |
| 指令複雜度 | 簡單 | 中等 |
| 大型網站適用 | 不建議 | 非常適合 |
| 備份用途 | 一次性備份 | 長期備份/排程備份 |
如果你同時使用 Windows 環境進行備份或網站搬移,可以參考 Robocopy 完整教學|Windows 備份指令、NAS 同步與 WindowsImageBackup 實戰,了解 Windows 系統下的自動化備份與同步方法。
三、RSYNC 網站搬家與同步備份實戰
RSYNC 是比 SCP 更進階的工具,適合大型網站搬家與長期備份。它的最大優勢是「只同步變更檔案」,因此非常適合正式環境使用。
RSYNC 安裝指令
CentOS / Rocky Linux / AlmaLinux:
sudo yum install -y rsync
Ubuntu / Debian:
sudo apt update
sudo apt install -y rsync
安裝完成後可用以下指令確認版本:
rsync --version
案例一:同步 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 特性
# - 增量同步
# - 支援續傳
# - 適合大型網站
# - 可用於備份系統
四、資料庫搬遷實戰(MySQL / MariaDB)
網站搬家不能只搬檔案——資料庫(會員資料、文章內容、訂單紀錄等)沒有一起遷移,網站到新主機後通常會出現無法登入、內容空白或資料缺失的狀況。以下是標準的 MySQL / MariaDB 資料庫搬遷流程。
步驟一:在舊主機匯出資料庫
mysqldump -u root -p website_db > website_db_backup.sql
執行後會提示輸入資料庫密碼,完成後會在當前目錄產生 website_db_backup.sql 備份檔。
步驟二:將備份檔傳輸到新主機
scp website_db_backup.sql root@192.168.0.10:/tmp/
也可以改用 rsync,作法跟前面的檔案同步相同,適合資料庫檔案較大的情境。
步驟三:在新主機建立資料庫並還原
mysql -u root -p -e "CREATE DATABASE website_db CHARACTER SET utf8mb4;"
mysql -u root -p website_db < /tmp/website_db_backup.sql
還原完成後,記得檢查網站設定檔(例如 wp-config.php 或框架的 .env)裡的資料庫連線資訊,是否已更新為新主機的帳號、密碼與主機位置。
步驟四:清除暫存檔
rm -f /tmp/website_db_backup.sql
跟檔案搬遷一樣,資料庫備份檔案還原完成後也應該清除暫存,避免遺留在伺服器上造成資安疑慮。
📌 五、網站搬家後的重要步驟:權限與使用者設定
在 Linux 網站搬家完成後,最常見的問題就是檔案權限錯誤,例如網站無法顯示、403 Forbidden 或資料夾無法存取。這通常是因為 user/group 權限未正確設定所導致。
👉 如果你遇到權限問題,可以參考這篇完整教學:Linux 使用者與權限管理完整教學
網站搬家完成後,如果遇到網站錯誤、頁面 500 或 nginx / apache 報錯,可以透過 log 進行分析。這時候 Linux grep 指令可以快速搜尋錯誤關鍵字,幫助你定位問題來源。
👉 建議使用 grep 來進行錯誤日誌分析:Linux grep 指令教學(日誌與錯誤排查)
Linux 網站搬家的完整流程是:確認SSH連線 → 檔案打包與傳輸(SCP或RSYNC)→ 資料庫匯出與還原 → 確認權限設定 → 檢查log排除錯誤。小型網站或單次搬遷可以用SCP快速完成,但正式環境與大型網站建議優先採用RSYNC,兼顧傳輸效率與後續的長期同步備份需求;資料庫則務必記得一起搬遷,並在離峰時段操作,避免資料不一致。
六、常見問題 FAQ
Linux 網站搬家一定要用 scp 嗎?
網站搬家為什麼要先做網站打包?
rsync 和 scp 最大差別是什麼?
Linux 網站搬家會影響網站運作嗎?
資料庫遷移需要一起做嗎?
rsync 可以用來做備份嗎?
資料庫搬遷時網站需要停機嗎?
本文為 Linux 網站搬家的通用操作教學,實際指令與路徑請依你的主機環境調整;正式環境操作前務必先完成備份與測試,資料庫與檔案搬遷建議安排在離峰時段進行。
