期望脚本自动执行FTP上传将损坏的文件发送到服务器

时间:2018-11-05 10:44:35

标签: linux bash ftp expect

#!/usr/local/bin/expect -f

spawn ftp $HOSTNAME 
expect "Name (sj105ut01:laureen):"
send "laureen\r"
expect "Password:"
send "password\r"
expect "ftp>"
send "cd path\r"
expect "ftp>"
send "put local_file.t.Z remote_file.t.Z"
expect "ftp>"
send "bye\n"
#interact

当我尝试使用(tar xzf)在服务器上解压缩文件时,出现以下错误:

  

tar:归档tar中意外的EOF:归档tar中意外的EOF:   错误无法恢复:正在退出

这可能是什么原因?有什么办法解决吗?

当它开始执行put命令时,我会在屏幕上看到它:

  

150打开remote_file.t.Z的BINARY模式数据连接

,然后我得到外壳。我想我应该会看到一些表明转移已完成但没有的信息。像:

  

226传输完成   147742720字节的发送时间为27.3秒(5420.58 KB /秒)

文件大小:本地: 142M ,而远程: 56M

谢谢

1 个答案:

答案 0 :(得分:0)

如果文件上传时间超过10秒,则说明达到了默认的默认超时:在发送“ put”命令后希望看到“ ftp>”提示,(默认)10秒后,希望放弃超时  并继续执行下一个命令(再见)。

尝试一下:

set timeout -1
send "put local_file.t.Z remote_file.t.Z"

此外,在“再见”之后,您应该等待连接结束:

send "bye\r"
expect eof