![sftp put - equivalente a rsync](https://rvso.com/image/164741/sftp%20put%20-%20equivalente%20a%20rsync.png)
Eu gostaria de usar o comando put
para recuperar uma transferência de arquivo em andamento sftp
apó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 ssh
acesso, então rsync
nã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 directory
para arquivos que não estão no servidor - Erro:
Destination file bigger or same size as source file
para 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 ssh
acesso e uso rsync
, ou talvez apenas rsync
acesso se isso for possível.
sftp
pode 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 sftp
o 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 -a
de sftp. man sftp
afirma 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.