次のコマンドを試してみました。
rsync -rvz --progress --remove-sent-files ./dir user@Host:2222/path
SSHはポート2222で実行されていますが、それでもrsyncはポート22を使用しようとした後、パスが見つからないことを訴えています。もちろん、それは存在しません。
非標準のsshポートでリモートホストに同期することが可能かどうかを知りたいのですが。
Rsyncを実行しているホストで、ssh設定ファイルでポートを設定します。
cat ~/.ssh/config
Host host
Port 2222
その後、ssh上のrsyncはポート2222と通信します。
rsync -rvz --progress --remove-sent-files ./dir user@Host:/path
コマンドラインは次のようになります。
rsync -rvz -e 'ssh -p 2222' --progress ./dir user@Host:/path
これはうまく機能します - 私は新しいファイアウォールルールを必要とせずにいつも使っています - SSHコマンド自体は引用符で囲まれていることに注意してください。
特定の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' [email protected]:/dir_on_Host/
Rsyncはデーモンとして動作しますTCPポート873、保護されていない、SSHとは関係ありません
Rsyncの人から。
プッシュ:rsync [OPTION ...] SRC ... [USER @]ホスト:DEST
あなたの命令が正しいと信じるように導きます:
rsync -rvz --progress --remove-sent-files ./ディレクトリのuser @ Host:2222/path
しかし、それはポート2222でRsyncデーモンに接続するように指示していますが、そこにはありません。
前述のとおり、正しい構文はRsyncにカスタムSSHコマンドを使用するように指示し(-p 2222を追加)、rsyncに対して(リモートSSH側で)TCP 873に接続し続ける(セキュアSSHトンネルを使用) 。
rsync -rvz --progress --remove-sent-files -e "ssh -p 2222" ./ディレクトリuser @ Host/path
私はマイク Hike Hostetler's サイトでこの解決策を見つけました。
# rsync -avz -e "ssh -p $portNumber" user@remoteip:/path/to/files/ /local/path/