sftp put - equivalente a rsync

sftp put - equivalente a rsync

Me gustaría usar el comando putpara recuperar una transferencia de archivos en curso sftpdespués de una tubería rota.

Los archivos deben cargarse solo si el tamaño de destino es menor que el del archivo de origen.

No tengo sshacceso, así que rsyncno es una opción.

Desde elmanual de ftp, Intenté especificar las banderas put -a -r source_dir/. Sin embargo, recibí mensajes de error en la transferencia.

  • Error: Couldn't stat remote file: No such file or directorypara archivos que no están en el servidor
  • Error: Destination file bigger or same size as source filepara archivos que ya están en el servidor y no deberían transferirse correctamente

Ejemplo real para el primer error:

Uploading of file /Volumes/Seagate/amphioxus/raw_h5/9N0Bp0b0_m150427_041848_42182_c100810932550000001823181110291543_s1_p0.2.bax.h5.gz to /deposits/Pacbio_amphioxus/raw_h5/9N0Bp0b0_m150427_041848_42182_c100810932550000001823181110291543_s1_p0.2.bax.h5.gz failed!
Couldn't stat remote file: No such file or directory

Por supuesto, el archivo existe en el directorio fuente.

¿Alguna solución para esto?

Respuesta1

No es una solución para esto, pero una solución alternativa es montar el servidor localmente y luego simplemente copiar los datos.

sshfsse puede utilizar para montar el directorio remoto:

sudo sshfs -o allow_other,default_permissions [email protected]:/ /mnt/local_directory

Entonces usa

cp -ru

donde actualiza los archivos que están en el directorio remoto montado con los que faltan.

Respuesta2

La mejor solución sería pedirle a un administrador del sistema remoto que le dé sshacceso y uso rsync, o tal vez solo rsyncacceso si eso es posible.

sftpPuede poner (y obtener) archivos, pero no directorios (árboles de directorios con su contenido).

Una solución alternativa escree un archivo tarball [comprimido] y colóquelo consftp.


tar -cvzf filename.tar.gz source_dir/

Si necesita restaurarlo, consígalo sftpverificando el contenido

tar -tvf filename.tar.gz

asegúrese de estar en el directorio correcto y extraiga del archivo tar,

tar -xvf filename.tar.gz

Respuesta3

Utilice la opción -ade sftp. man sftpindica que esto indica a sftp que "intente continuar con las transferencias interrumpidas en lugar de sobrescribir las copias parciales o completas de los archivos existentes. Si el contenido parcial difiere de los que se están transfiriendo, es probable que el archivo resultante esté dañado.

información relacionada