답변:
rsync를 실행하는 호스트의 다른 옵션은 ssh 구성 파일에서 포트를 설정하십시오.
cat ~/.ssh/config
Host host
Port 2222
그런 다음 ssh를 통한 rsync는 포트 2222와 통신합니다.
rsync -rvz --progress --remove-sent-files ./dir user@host:/path
rsync
이상한 항구에 여러 번 가야하는 사람에게는 가장 위대한 것이라고 부르는 것만 큼 끔찍 하지는 않지만 매번 구문을 잊어 버릴 정도로 충분히 퍼져 있습니다.
명령 행은 다음과 같아야합니다.
rsync -rvz -e 'ssh -p 2222' --progress ./dir user@host:/path
이것은 잘 작동합니다-새로운 방화벽 규칙이 없어도 항상 사용합니다. SSH 명령 자체는 따옴표로 묶여 있습니다.
user@host:/path
특정 SSH 포트를 통해 파일을 보내야 할 경우 :
rsync -azP -e "ssh -p PORT_NUMBER" source destination
예
rsync -azP -e "ssh -p 2121" /path/to/files/source user@remoteip:/path/to/files/destination
"rsh 옵션"을 사용하십시오. 예 :
rsync -avz --rsh='ssh -p3382' root@remote_server_name:/opt/backups
참조 : http://www.linuxquestions.org/questions/linux-software-2/rsync-ssh-on-different-port-448112/
약간의 주제는 아니지만 누군가를 도울 수 있습니다. 비밀번호와 포트를 전달해야하는 경우 sshpass
패키지를 사용하는 것이 좋습니다 . 명령 행 명령은 다음과 같습니다.
sshpass -p "password" rsync -avzh -e 'ssh -p PORT312' root@192.xx.xxx.xxx:/dir_on_host/
Mike Hike Hostetler 사이트 에서이 솔루션을 찾았 습니다.
# rsync -avz -e "ssh -p $portNumber" user@remoteip:/path/to/files/ /local/path/
올바른 구문은 Rsync에게 SSH를 사용하여 원격으로 보안 터널을 만든 다음 localhost를 통해 연결하는 사용자 정의 SSH 명령 (-p 2222 추가)을 사용하도록 지시하는 것입니다.
rsync -rvz --progress --remove-sent-files -e "ssh -p 2222"./dir user @ host / path
Rsync는 안전하지 않은 TCP 포트 873에서 데몬으로 실행됩니다.
Rsync man에서 :
푸시 : rsync [OPTION ...] SRC ... [USER @] HOST : DEST
사람들이 이것을 시도하도록 오도하는 것은 무엇입니까?
rsync -rvz --progress --remove-sent-files ./dir user @ host : 2222 / path
그러나 포트 2222의 Rsync 데몬에 연결하도록 지시합니다 .