【发布时间】:2018-11-15 07:09:48
【问题描述】:
我正在尝试mput 目录中存在的所有文件:/Test/XML/ 在expect 实用程序的帮助下进入远程 sftp 服务器。
我在目录中有大约 320 个文件:/Test/XML/。
每个文件的大小约为 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个文件。
欢迎任何帮助。
【问题讨论】:
-
在脚本存在之前你有没有得到任何错误??我的意思是连接中止或与代理有关的东西?
-
您检查是否可以关闭交互式提示(
PROMPT命令)? -
您也可以尝试递归,将
mput替换为put -r *,这样它会随文件夹一起传输文件(如果有)。 -
@ThiruShetty:我在调试模式下运行脚本。没有观察到错误。我只需要传输文件。
-
set timeout是expect的一部分,而不是sftp的一部分,所以您不要将send发送到FTP 服务器,您只需将其作为期望脚本的第一行。