[英]sftp using expect to automate file transfer not working
我想自动执行以下命令,以便传递密码并继续进行文件传输。
#This command works well but it will require password
echo "put This_file_from_server_a.csv /TO/THIS/SERVER_B/PATH" | sftp remote@10.11.12.13
我曾尝试使用expect
,以便自动/自动发送密码,但它不起作用,即
expect -c 'spawn "put This_file_from_server_a.csv /TO/THIS/SERVER_B/PATH" | sftp remote@10.11.12.13; expect "assword:"; send "THE_PASSWORD\r"; interact'
我得到错误
发送:执行“发送“THE_PASSWORD\\r””时,生成 ID exp4 未打开
可能是什么问题? 不考虑替代方案:例如sshpass
、 lftp
、 private keys
...
考虑在您尝试进行交易的两台服务器上创建私钥,然后尝试做同样的事情,它应该可以工作
如果它不使用expect如下。
expect <<'END_EXPECT'
set timeout -1
spawn sftp remote@10.11.12.13
expect "assword:"
send "THE_PASSWORD\r"
expect "sftp>"
send "put This_file_from_server_a.csv /TO/THIS/SERVER_B/PATH\r"
expect "sftp>"
send "quit\r"
expect eof
END_EXPECT
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.