Sftp
sftp 文件大小限制
從命令行進行 sftp 傳輸似乎有文件大小限制,如果我嘗試下載 20 MB 的文件,當傳輸的數據大於 4 MB 時,它會在 20% 處停止:
/myfile.xml 22% 4480KB 410.4KB/s 00:38 ETA
某處有限制嗎?你怎麼能改變它?我使用帶有腳本的 sftp 連接 expect。通過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
似乎添加超時可以解決問題。預設的期望超時為10 秒,這意味著以 400 KB/s 的速率,如果達到 4000 KB = 4 MB,則會觸發超時
set timeout 300
預設情況下沒有限制(據我所知)。
我猜你會丟包和超時。嘗試添加-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 username@whatever.com:/folder/folder/folder