sftp 文件大小限制

sftp 文件大小限制

从命令行进行 sftp 传输似乎有一个文件大小限制,如果我尝试下载一个 20 MB 的文件,当传输的数据大于 4 MB 时,它会在 20% 处停止:

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

是否存在限制?如何更改?我使用使用 expect 编写脚本的 sftp 连接. 通过下载文件Nautilus 文件管理器或者从控制台使用 sftp,无需 shell 脚本,预计程序似乎都可以工作。脚本如下:

#!/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

答案1

似乎添加超时可以解决问题。默认的预期超时是10 秒,这意味着在 400 KB/s 的速率下,如果达到 4000 KB = 4 MB,就会触发超时

set timeout 300

答案2

默认情况下没有限制(据我所知)。

我猜你遇到了数据包丢失和超时问题。尝试添加 -D。

-D 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.

来源:http://www.cl.cam.ac.uk/cgi-bin/manpage?1+sftp

我可能会用 rsync 来复制它,rsync -avrz --ignore-existing /folder/folder/folder [email protected]:/folder/folder/folder

相关内容