limite de tamanho do arquivo sftp

2

Parece haver um limite de tamanho de arquivo para a transferência sftp na linha de comando; se eu tentar baixar um arquivo de 20 MB, ele será interrompido em 20% quando os dados transferidos forem maiores que 4 MB:

/myfile.xml                             22% 4480KB 410.4KB/s   00:38 ETA       

Existe algum limite em algum lugar e como você pode mudá-lo? Eu uso uma conexão sftp com script . Baixando o arquivo via gerenciador de arquivos Nautilus ou sftp do console sem script de shell e espere

#!/usr/bin/expect    
# usage: ./sftp_import.sh username host password filepath localpath

set username [lindex $argv 0]
set host [lindex $argv 1]
set password [lindex $argv 2]
set filepath [lindex $argv 3]
set localpath [lindex $argv 4]

spawn sftp $username@$host
expect "password:"
send "$password\r";
expect "sftp>"
send "get $filepath $localpath\r"
expect "sftp>"
send "bye \r";
exit 0
    
por 0x4a6f4672 27.02.2013 / 15:54

2 respostas

2

Parece que adicionar um tempo limite resolve o problema. O tempo limite padrão esperado é de 10 segundos , o que significa uma taxa de 400 KB / s, o tempo limite é acionado se 4000 KB = 4 MB for atingido

set timeout 300
    
por 27.02.2013 / 16:07
2

Não há limite por padrão (até onde eu saiba).

Eu acho que você está recebendo perda de pacotes e tempo limite. Eu tentaria adicionar -P.

-P sftp_server_path Connect directly to a local sftp server (rather than via ssh(1)). This option may be useful in debugging the client and server.

Fonte: link

Eu provavelmente copiaria com rsync, rsync -avrz --ignore-existing /folder/folder/folder [email protected]:/folder/folder/folder

    
por 27.02.2013 / 16:09

Tags