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 -r
Habrí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
-r
opción es para copiar archivos de forma recursiva,-z
permite la compresión durante la transferencia y-p
preserva 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 lasman
páginas.fuente
rsync
no hablasftp
-Protocolo. Por lo tanto, si configura unsftp
-chroot utilizandossh
la compilación de,internal-sftp
entoncesrsync
falla.En
sftp
este comando carga recursivamente el contenido del directorio actual al directorio actual remoto:Ver
man sftp
.fuente
-r
conmutador solo es compatible desde OpenSSH 5.4 .-r
conmutador es solo del lado del cliente (parte delsftp
comando). 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
-r
conmutador solo es compatible desde OpenSSH 5.4 .-r
conmutador es solo del lado del cliente (parte delsftp
comando). 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 )rsync
como respuesta a una pregunta etiquetadasftp
es 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
rsync
no era posible, así que usé:fuente
mput
comando en OpenSSHsftp
. Tal vez te refierespsftp
?