
En la máquina AI tiene la carpeta
/home/a/
En la máquina BI tiene la carpeta
/home/b/
Deseo transferir todos los archivos, directorios y subdirectorios de /home/a en /home/b con sftp. En la máquina AI probé los comandos:
sftp [email protected]
put /home/a/* /home/b/
pero no funciona, aparece el mensaje de error: "omitiendo el archivo no regular /home/a/a1"... [a1 es un subdirectorio de a]
¿Cómo puedo modificar la instrucción put?
¡Gracias! :)
EDITAR:
Lo resolví usando scp:
scp -r /home/a/ [email protected]:/home/b/
Respuesta1
Aunque no es estrictamente equivalente a sftp,sincronizaciónes una alternativa muy poderosa para scp y sftp, especialmente cuando se actualizan 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 puede eliminar archivos de la máquina B que se han eliminado de la máquina A (solo cuando se le indica, por supuesto).
En su caso, la sintaxis sería
rsync -zrp /home/a/ [email protected]:/home/b/
La -r
opción es para copiar archivos de forma recursiva, -z
permite la compresión durante la transferencia y -p
conserva los permisos del archivo (creación de archivos, edición, etc.) al copiar, que es algo que scp no hace, AFAIK. Son posibles muchas más opciones; Como siempre, lee las man
páginas.
Respuesta2
En sftp
este comando, se carga recursivamente el contenido del directorio actual al directorio actual remoto:
put -r .
Verman sftp
.
Respuesta3
scp
(copia segura) es el Linux de facto para transferir archivos a través de un túnel seguro. En su caso, querrá utilizar el conmutador recursivo, por ejemplo:
scp -r /home/a/ [email protected]:/home/b/
Respuesta4
En realidad, put -r debería funcionar. Pero la carpeta de destino debe estar presente en su host remoto:
sftp> put -r sourcefolder
Uploading sourcefolder/ to /user/folder
Couldn't canonicalize: No such file or directory
....
sftp> mkdir sourcefolder
sftp> put -r sourcefolder
Uploading sourcefolder/ to /user/folder/sourcefolder
Entering sourcefolder/
sourcefolder/file1
sourcefolder/file2