J'ai essayé la commande suivante:
rsync -rvz --progress --remove-sent-files ./dir user@Host:2222/path
SSH fonctionne sur le port 2222, mais rsync essaie toujours d’utiliser le port 22 et se plaint de ne pas trouver le chemin, car il n’existe bien sûr pas.
J'aimerais savoir s'il est possible de rsync sur un hôte distant sur un port ssh non standard.
Votre ligne de commande devrait ressembler à ceci:
rsync -rvz -e 'ssh -p 2222' --progress --remove-sent-files ./dir user@Host:/path
cela fonctionne bien - je l'utilise tout le temps sans avoir besoin de nouvelles règles de pare-feu - il suffit de noter que la commande SSH elle-même est entre guillemets.
Une autre option, dans l'hôte à partir duquel vous exécutez rsync, configurez le port dans le fichier de configuration ssh, par exemple:
cat ~/.ssh/config
Host host
Port 2222
Ensuite, rsync sur ssh parlera au port 2222:
rsync -rvz --progress --remove-sent-files ./dir user@Host:/path
lorsque vous devez envoyer des fichiers via un port SSH spécifique:
rsync -azP -e "ssh -p PORT_NUMBER" source destination
exemple
rsync -azP -e "ssh -p 2121" /path/to/files/source user@remoteip:/path/to/files/destination
utilisez l'option "rsh option". par exemple.:
rsync -avz --rsh='ssh -p3382' root@remote_server_name:/opt/backups
se référer à: http://www.linuxquestions.org/questions/linux-software-2/rsync-ssh-on-different-port-448112/
Un peu offtopic mais pourrait aider quelqu'un. Si vous avez besoin de mot de passe et de port, je vous suggère d’utiliser le paquet sshpass
. La commande en ligne de commande ressemblerait à ceci: sshpass -p "password" rsync -avzh -e 'ssh -p PORT312' [email protected]:/dir_on_Host/
Rsync s'exécute en tant que démon sur le port TCP 873, non protégé, n'a rien à voir avec SSH
De l'homme Rsync:
Push: rsync [OPTION ...] SRC ... [USER @] Hôte: DEST
Vous amène à croire que votre commande est correcte:
rsync -rvz --progress --remove-sent-files ./dir user @ Host: 2222/path
Cependant, cela lui indique de se connecter à Rsync daemon sur le port 2222, qui n’y est pas.
Comme indiqué précédemment, la syntaxe correcte consiste à indiquer à Rsync d'utiliser une commande SSH personnalisée (en ajoutant -p 2222), qui continuera à se connecter (côté distant) à TCP 873 pour rsync (à l'aide du tunnel SSH sécurisé).
rsync -rvz --progress --remove-sent-files -e "ssh -p 2222" ./dir utilisateur @ hôte/chemin
J'ai trouvé cette solution sur le site de Mike Hike Hostetler qui a parfaitement fonctionné pour moi.
# rsync -avz -e "ssh -p $portNumber" user@remoteip:/path/to/files/ /local/path/