![sftp put - equivalente a rsync](https://rvso.com/image/164741/sftp%20put%20-%20equivalente%20a%20rsync.png)
Me gustaría usar el comando put
para recuperar una transferencia de archivos en curso sftp
despué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 ssh
acceso, así que rsync
no 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 directory
para archivos que no están en el servidor - Error:
Destination file bigger or same size as source file
para 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é ssh
acceso y uso rsync
, o tal vez solo rsync
acceso si eso es posible.
sftp
Puede 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 sftp
verificando 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 -a
de sftp. man sftp
indica 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.