遲早都要把檔案傳到伺服器上:網站的建置產物、資料庫匯出檔案、在本機寫好的設定。為此您並不需要 FTP 伺服器:SSH 已經提供了三個好用的工具。所有範例都使用文件專用位址,請換成您自己伺服器的位址。
弄清您的連線資訊
- 獨立 IP 方案:
root@203.0.113.10,埠 22。 - NAT 方案: 主機和您的專屬 SSH 埠顯示在面板中(例如埠 20123)。下面的所有指令都需要這個埠;參見 NAT 存取如何工作。
scp:複製檔案或資料夾
上傳一個檔案:
scp backup.sql root@203.0.113.10:/root/
下載一個檔案:
scp root@203.0.113.10:/var/log/nginx/access.log .
整個資料夾:
scp -r ./site root@203.0.113.10:/var/www/
在 NAT 方案上,用大寫的 -P 指定埠:
scp -P 20123 backup.sql root@your-nat-host:/root/
rsync:同步資料夾的正確工具
rsync 只發送差異部分,顯示進度,連線中斷後還能繼續。兩端都需要安裝它(apt install -y rsync)。
rsync -avzP ./site/ root@203.0.113.10:/var/www/site/
-a保留權限和時間戳,-v列出檔案,-z壓縮傳輸,-P顯示進度並支援斷點續傳。
使用自訂 SSH 埠時:
rsync -avzP -e "ssh -p 20123" ./site/ root@your-nat-host:/var/www/site/
要讓目標與源完全一致(同時刪除您在本機刪掉的檔案),就加上 --delete,但請先看看它會做什麼:
rsync -avzP --delete --dry-run ./site/ root@203.0.113.10:/var/www/site/
注意末尾的斜槓。 ./site/ 複製的是 site 的內容;./site 則把資料夾本身複製到目標中。用上 --delete 時,這個區別決定了哪個目錄會被清空。
SFTP:互動式或圖形介面
命令列用戶端用起來像一個小型檔案管理器:
sftp -P 20123 root@your-nat-host
sftp> put backup.sql
sftp> get /etc/nginx/nginx.conf
sftp> exit
更喜歡圖形介面?FileZilla、WinSCP 或 Cyberduck 用同樣的資訊連線:SFTP 協議、您的主機、埠 22(或您的 NAT 埠)、使用者 root,以及您的 SSH 金鑰或密碼。
用 SSH 金鑰更快
這些工具都基於 SSH,所以一把 SSH 金鑰就能免去輸入密碼,還能讓您用 cron 自動化傳輸。還沒設定的話:SSH 金鑰認證。新的 EQVPS 伺服器在您切換到金鑰之前接受面板中的 root 密碼,我們建議您在第一天就切換。
大檔案傳輸
面對幾十 GB 的資料,rsync 是唯一明智的選擇:連線一旦中斷,重新執行同一條指令,它就會從斷開的地方繼續。請在傳送端機器的 tmux 或 screen 裡執行,這樣合上筆電也不會中斷傳輸。
評論
目前還沒有評論。歡迎成為第一位。