sftp 使用 expect 自动传输文件不工作
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'
我收到错误
send: spawn id exp4 not open
while executing "send "THE_PASSWORD\r""
可能是什么问题?不考虑备选方案:例如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
我想自动执行以下命令以传递密码并继续文件传输。
#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'
我收到错误
send: spawn id exp4 not open while executing "send "THE_PASSWORD\r""
可能是什么问题?不考虑备选方案:例如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