如何用密码在sftp中传输? put命令不发送完整文件

时间:2017-09-01 11:31:00

标签: unix sftp expect

我是UNIX新手。需要帮助找到发送文件的正确方法。

我必须发送1gb的大文件,手动sftp所需的时间大约是10分钟,我们已经尝试了以下脚本,因为我们必须使用密码登录。

此处的问题是在完全传输文件之前。该脚本来自SFTP连接,没有错误。

脚本:

` spawn sftp DataStageIM2@192.168.79.15                               
 DataStageIM2@192.168.79.15's password:                               
 Connected to 192.168.79.15.                                          
 sftp>  cd /users/StoreStockManagement/ReferenceData/Inbound          
 sftp>  lcd /staging/oretail/external/data/DSPRD/Output/Pricing/INT340
 sftp>  mput hhtstore_price.dat 
 Uploading hhtstore_price.dat to /users/StoreStockManagement/ReferenceData/Inbound/hhtstore_price.dat  
 hhtstore_price.dat 3%  189MB  18.1MB/s   04:31 ETA+ [[ 0 -ne 0 ]]`

记录:

go = function() {
        print.innerHTML = facts[i];
        i = (i + 1) % (facts.length); 
} 

- 在传输3%的文件后,这个脚本出来了,我在那里看不到文件。但是,当我手动尝试sftp它正在工作。只有脚本才能复制。

有人可以帮助吗

1 个答案:

答案 0 :(得分:0)

IEndpointBehavior命令的默认超时值为10秒。因此,在expect之后,期望等待10秒钟才能看到提示,然后超时,然后继续使用脚本。

显然,您希望根据需要等待传输文件的日志,因此请将其添加到您的脚本中:

put