En la máquina AI tengo la carpeta
/home/a/
En la máquina BI tengo la carpeta
/home/b/
Deseo transferir todos los archivos, directorios y subdirectorios de / home / a in / home / b con sftp En la máquina AI probé los comandos:
sftp [email protected]
put /home/a/* /home/b/
pero no funciona, recibo el mensaje de error: "omitiendo el archivo no regular / home / a / a1" ... [a1 es un subdirectorio de a]
¿Cómo podría modificar la instrucción put?
¡Gracias! :)
EDITAR:
Resolví usando scp:
scp -r /home/a/ [email protected]:/home/b/

put -rHabría funcionado también.sftp, consulte el proyecto OpenSSH .Respuestas:
Aunque no es estrictamente equivalente a sftp, rsync es una alternativa muy poderosa para scp y sftp, especialmente al actualizar las copias de la máquina A a la máquina B, ya que no copia los archivos que no han sido alterados; también es capaz de eliminar archivos de la máquina B que se han eliminado de la máquina A (solo cuando, por supuesto, se lo indica).
En su caso, la sintaxis sería
La
-ropción es para copiar archivos de forma recursiva,-zpermite la compresión durante la transferencia y-ppreserva los permisos del archivo (creación, edición, etc.) al copiar, que es algo que scp no hace AFAIK. Son posibles muchas más opciones; como de costumbre, lee lasmanpáginas.fuente
rsyncno hablasftp-Protocolo. Por lo tanto, si configura unsftp-chroot utilizandosshla compilación de,internal-sftpentoncesrsyncfalla.En
sftpeste comando carga recursivamente el contenido del directorio actual al directorio actual remoto:Ver
man sftp.fuente
-rconmutador solo es compatible desde OpenSSH 5.4 .-rconmutador es solo del lado del cliente (parte delsftpcomando). Por lo tanto, el lado del servidor (aquí: recepción) no necesita OpenSSH 5.4, solo el cliente debe admitirlo.scp(copia segura) es el Linux de facto para transferir archivos a través de un túnel seguro. En su caso, desearía utilizar el interruptor recursivo, por ejemplo:fuente
Intenta usar
para obtener más información, echa un vistazo: esto
fuente
-rconmutador solo es compatible desde OpenSSH 5.4 .-rconmutador es solo del lado del cliente (parte delsftpcomando). Por lo tanto, el lado del servidor (aquí: recepción) no necesita OpenSSH 5.4, solo el cliente debe admitirlo. Y: Esta debería ser la respuesta aceptada , ya que obtener (la posiblemente no admitida )rsynccomo respuesta a una pregunta etiquetadasftpes un poco confuso.En realidad, put -r debería funcionar. Pero la carpeta de destino debe estar presente en su host remoto:
fuente
En mi caso
rsyncno era posible, así que usé:fuente
mputcomando en OpenSSHsftp. Tal vez te refierespsftp?