Rsync sobre ssh, funciona muy bien cada vez.
Sin embargo, intentar rsync a un host que solo permite inicios de sesión sftp, pero no inicios de sesión ssh, proporciona el siguiente error:
rsync -av / source ssh user @ remotehost: / target /
no coinciden las versiones del protocolo: ¿está limpio su shell? (consulte la página de manual de rsync para obtener una explicación) Error de rsync: incompatibilidad de protocolo (código 2) en compat.c (171) [remitente = 3.0.6]
Aquí está la sección relevante de la página de manual de rsync:
Este mensaje generalmente es causado por sus scripts de inicio o instalación remota de shell que produce basura no deseada en la secuencia que rsync está utilizando para su transporte. La forma de diagnosticar este problema es ejecutar su shell remoto de esta manera:
ssh remotehost /bin/true > out.dat
luego mira out.dat. Si todo funciona correctamente, out.dat debería ser un archivo de longitud cero. Si obtiene el error anterior de rsync, probablemente encontrará que out.dat contiene texto o datos. Mire el contenido e intente averiguar qué lo produce. La causa más común son los scripts de inicio de shell configurados incorrectamente (como .cshrc o .profile) que contienen sentencias de salida para inicios de sesión no interactivos.
Probar esto en mi sistema produjo lo siguiente en out.dat:
ssh-dummy-shell: comando no permitido.
Como pensaba, el host no permite inicios de sesión ssh.
El siguiente enlace muestra que es posible realizar esta tarea usando el fusible con sshfs; sin embargo, es extremadamente lento y no es apto para el uso de producción.
¿Hay alguna posibilidad de que rsync sftp funcione?
csync /home/csync sftp://csync@krikkit.galaxy.site:2222/home/csync
esta respuesta .
lftp -e "mirror -eRv /local/dir/ /remote/dir; quit;" sftp://user@server:port