使用 Linux rsync 來遷移網站
Last Updated on November 10, 2022
rsync
是 Linux 系統上一個常被用來複製與備份檔案的工具程式,大部分的 Linux 發行版都已經內建 rsync,最好用的是可以處理本機或遠端的檔案同步工作,所以藉由 rsync
指令可以快速遷移網站資料將兩台主機資料同步。
早期網站遷移,最常用的方法,使用 FTP 程式將整個網站資料夾下載到本機,或使用 SSH 指令將網站打包下載。
如果網站資料不多,可以很快的遷移網站,網站運行有一段時間了,資料夾的資料加上圖片已經有 5G 或 20G 以上,再遇到網路速度不快的主機,網站遷移可能要花個 1 天都有可能。
WordPress Plugin
現在的 WordPress 遷移外掛都非常好用,如:WPvivid Backup 或 UpdraftPlus Backup 這一類外掛,但遇上大型網站,遷移起來還是很吃力,備份 > 下載,再上傳到新主機 > 還原,需要花費大量時間。
如果你的主機允許使用 SSH 方式,使用 Linux rsync 文件同步 / 傳輸,增量備份來幫我們來網站遷移,時間上可以縮短不少。
rsync
VPS 主機安裝 rsync 程式:
CentOS / Fedora / RHEL
yum install rsync
Debian / Ubuntu
apt-get install rsync
rsync
網站遷移用法
A 主機是原本的主機,B 主機是要遷移網站過去的目的地主機。
B 主機,先建置一個空的網站,就可開始用下面的指令傳輸 A 主機 (原網站) 的文件了。
將 A 主機目錄同步傳輸到遠程 B 主機:
rsync -avu --progress --delete /home/wwwroot/example.com/ root@123.123.123.123:/home/wwwroot/example.com/
預設是 SSH 22 埠,如果 B 主機修改了 SSH 連接埠,需要加 -e “ssh -p 你的 SSH 連接埠”,如果不想顯示傳輸過程可以去掉 P 參數:
rsync -avu -e "ssh -p 20000" --progress --delete /home/wwwroot/example.com/ root@123.123.123.123:/home/wwwroot/example.com/
修改使用者權限
chown -R www:www /home/wwwroot/example.com/
網站遷移的時間可以縮短很多,接下來再來遷移你的資料庫文件。
MySQL
使用 root 帳號,登入 data_name 的資料庫
mysql -uroot -p data_name
或
mysql -h localhost -u root -p data_name
資料庫匯出
mysqldump -u root -p data_name > data_name.sql
要匯入的資料庫文件先上傳到根目錄 root/ 底下
資料庫匯入
mysql -u root -p data_name < /root/data_name.sql
最後
這一篇文章是我之前遷移網站的紀錄,舊瓶裝新酒重新整理的文章,因為,今天看到 Facebook 上有人分享使用 Migrate Guru 外掛遷移一個 118.90 GB 大小的網站 ,這是一個不可思議的事情,這可能需要花一天的時間來網站搬家。
Migrate Guru 是將原網站的資料,透過他的雲端平台,將網站遷移到你目的地主機,主機商的網路頻寬大小,決定你的遷移速度。
Photo by Gareth Davies on Unsplash