我正在尝试借助mput
实用工具将/Test/XML/
目录中存在的所有文件expect
放入远程sftp服务器。
我在/ Test / XML /目录中大约有320个文件。
每个文件的大小约为0.1 MB。
没有观察到错误。
这是我的代码:
cd /Test/XML/
/usr/bin/expect <<EOF
spawn /usr/bin/sftp ${user_name}@${HOSTNAME}
expect "password:"
send "${passwd}\r"
expect "sftp>"
send "cd /test\r"
expect "sftp>"
send "mkdir XML\r"
expect "sftp>"
send "cd /test/XML\r"
expect "sftp>"
send "mput *\r"
expect "sftp>"
send "bye\r"
EOF
但是这里的问题是mput *
仅传输4个文件,而不是传输所有320个文件。
不确定,为什么它不能传输远程服务器中的所有320个文件。
非常欢迎任何帮助。
答案 0 :(得分:0)
感谢@ThiruShetty在set timeout -1
实用程序中使用expect
的提示。
实际上,我有很多文件(〜320-350)要传输(sftp)到远程服务器。
使用sftp
实用工具正常执行expect
后,它只能传输几个文件,而不是我想要的所有文件。
在set timeout -1
内插入expect
后,它解决了超时问题。
这是最终代码:
cd /Test/XML/
/usr/bin/expect <<EOF
set timeout -1
spawn /usr/bin/sftp ${user_name}@${HOSTNAME}
expect "password:"
send "${passwd}\r"
expect "sftp>"
send "cd /test\r"
expect "sftp>"
send "mkdir XML\r"
expect "sftp>"
send "cd /test/XML\r"
expect "sftp>"
send "mput *\r"
expect "sftp>"
send "bye\r"
EOF