SCP 與 Rsync¶
win-sshpass 相容標準 scp 和 rsync 命令語法,底層透過 SFTP 實作檔案傳輸。
SCP 風格傳輸¶
基本語法¶
上傳檔案¶
# 上傳單一檔案
win-sshpass -p 'pass' scp ./file.txt user@host:/tmp/
# 上傳到指定檔名
win-sshpass -p 'pass' scp ./file.txt user@host:/tmp/newname.txt
# 上傳目錄(-r 遞迴)
win-sshpass -p 'pass' scp -r ./dist user@host:/var/www/html
下載檔案¶
# 下載檔案
win-sshpass -p 'pass' scp user@host:/tmp/file.txt ./
# 下載目錄
win-sshpass -p 'pass' scp -r user@host:/var/log/nginx ./logs
指定連接埠¶
scp 使用大寫 -P 指定連接埠(與 ssh 的小寫 -p 不同):
支援的選項¶
| 選項 | 說明 |
|---|---|
-r |
遞迴複製目錄 |
-P <port> |
指定連接埠 |
-i <key> |
指定私鑰 |
-q |
靜默模式 |
-C |
壓縮(已由 SFTP 處理) |
-v |
詳細輸出 |
Rsync 風格傳輸¶
基本語法¶
上傳¶
下載¶
指定連接埠¶
rsync 使用 --port= 指定連接埠:
支援的選項¶
| 選項 | 說明 |
|---|---|
-a |
封存模式 |
-v |
詳細輸出 |
-z |
傳輸時壓縮 |
--port=N |
指定連接埠 |
-e ssh |
指定遠端 Shell(會被忽略) |
SCP vs Rsync vs SFTP¶
| 方式 | 語法相容 | 適用場景 |
|---|---|---|
| SCP | 標準 scp 語法 | 簡單的檔案複製 |
| Rsync | 標準 rsync 語法 | 增量同步(注意:當前實作為全量傳輸) |
| SFTP | -local / -remote 參數 |
靈活的檔案傳輸,支援多檔案 |
注意
win-sshpass 的 rsync 實作底層使用 SFTP,不支援 rsync 的增量同步演算法。如果需要真正的增量同步,請在遠端伺服器上安裝 rsync 並透過 SSH 直接使用。