rsync + ssh 使用不同 port 執行

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 遠端機器的相關設定, 如下述範例:

  1. vim .ssh/config
    Host REMOTE_HOST # 這個可以寫簡寫, 但是下面 rsync 的REMOTE_HOST 需與此一致.
    HostName REMOTE_HOST
    User YOUR_USERNAME
    Port 1234
    IdentityFile /home/YOUR_USERNAME/.ssh/id_rsa # 如果有在寫, 沒有這行可跳過不寫
  2. rsync -avz --bwlimit=3000 REMOTE_HOST:data_path . # 這邊就可以直接 rsync 即可.

相關網頁


關於 Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
本篇發表於 My_Note-Unix 並標籤為 , 。將永久鏈結加入書籤。

rsync + ssh 使用不同 port 執行 有 4 則回應

  1. sshsiung 說道:

    也可以用 --rsh='ssh -p1234' 方式。

  2. 發現新大陸了, 原來.ssh/config可以對 不同的 hostname 做port的設定!!
    太感謝了!

發表迴響