sftp put - equivalente a rsync

sftp put - equivalente a rsync

Eu gostaria de usar o comando putpara recuperar uma transferência de arquivo em andamento sftpapós um cano quebrado.

Os arquivos devem ser carregados somente se o tamanho de destino for menor que o do arquivo de origem.

Não tenho sshacesso, então rsyncnão é uma opção.

Demanual de sftp, tentei especificar os sinalizadores put -a -r source_dir/. No entanto, recebi mensagens de erro na transferência.

  • Erro: Couldn't stat remote file: No such file or directorypara arquivos que não estão no servidor
  • Erro: Destination file bigger or same size as source filepara arquivos que já estão no servidor e não devem ser transferidos corretamente

Exemplo real para o 1º erro:

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

Claro, o arquivo existe no diretório de origem.

Alguma solução para isso?

Responder1

Não é uma solução para isso, mas uma solução alternativa é montar o servidor localmente e simplesmente copiar os dados.

sshfspode ser usado para montar o diretório remoto:

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

Então use

cp -ru

onde você atualiza os arquivos que estão no diretório remoto montado com os que faltam.

Responder2

A melhor solução seria pedir a um administrador do sistema remoto que lhe desse sshacesso e uso rsync, ou talvez apenas rsyncacesso se isso for possível.

sftppode colocar (e obter) arquivos, mas não diretórios (árvores de diretórios com seu conteúdo).

Uma solução alternativa écrie um arquivo tarball [compactado] e coloque-o comsftp.


tar -cvzf filename.tar.gz source_dir/

Se você precisar restaurar a partir dele, verifique sftpo conteúdo

tar -tvf filename.tar.gz

certifique-se de estar no diretório correto e extraia do tarball,

tar -xvf filename.tar.gz

Responder3

Use a opção -ade sftp. man sftpafirma que isso instrui o sftp a "Tentar continuar as transferências interrompidas em vez de substituir as cópias parciais ou completas existentes dos arquivos. Se o conteúdo parcial for diferente daqueles que estão sendo transferidos, é provável que o arquivo resultante esteja corrompido.

informação relacionada