rsync + ssh 要同步某些資料, 如果是標準 ssh 的 22 port, 只需要下述指令即可, 但是若不同 port, 就得要再處理一下~
- rsync -avz --bwlimit=3000 REMOTE_HOST:data_path . # 限制頻寬使用3M
註: 此環境於 Ubuntu、Debian Linux
rsync + ssh 使用不同 port 執行
rsync + ssh 使用不同 port 的話, 需要加上 -e "ssh -p port_number", ex: 假設遠端的 ssh 機器是用 1234 port, 指令會如下述:
- rsync -e "ssh -p 1234" -avz --bwlimit=3000 REMOTE_HOST:data_path .
另一種使用 --rsh='ssh -pPORT_NUMBER', 如下述範例:
- rsync --rsh='ssh -p1234' -avz --bwlimit=3000 REMOTE_HOST:data_path .
另外一個是透過 .ssh/config, 做 ssh 遠端機器的相關設定, 如下述範例:
- vim .ssh/config
Host REMOTE_HOST # 這個可以寫簡寫, 但是下面 rsync 的REMOTE_HOST 需與此一致.
HostName REMOTE_HOST
User YOUR_USERNAME
Port 1234
IdentityFile /home/YOUR_USERNAME/.ssh/id_rsa # 如果有在寫, 沒有這行可跳過不寫 - rsync -avz --bwlimit=3000 REMOTE_HOST:data_path . # 這邊就可以直接 rsync 即可.
也可以用 --rsh='ssh -p1234' 方式。
嗯嗯, 感謝提供~ 🙂
發現新大陸了, 原來.ssh/config可以對 不同的 hostname 做port的設定!!
太感謝了!
呵呵,一定得要這樣子,不然很多 ssh port 都亂指,大腦不夠記憶~