我正在运行这个脚本来复制本地的模式文件,但它要求输入密码,甚至传递了硬编码值。
脚本:
PASSWORD="xyz"
sftp -oport=1002 user@host:/dir/archive/file*.txt /di/data/
<< EOF
$PASSWORD
quit
EOF
获取错误:
-bash-4.1$ sh sftp_with_password.sh
Connecting to user@host...
Password Authentication
发布于 2018-08-30 03:53:00
多亏了Gonzalo Matheu,我成功地使用代理实现了send-sftp.exp,它可以将一个大文件发送到sftp:
#!/usr/bin/expect
set timeout -1
set password [lindex $argv 0]
set file [lindex $argv 1]
spawn sftp -o "ProxyCommand /usr/bin/connect -H <proxy-host>:<proxy-port> %h %p" <sftp-Username>@<sftp-HOST>
expect "password:"
send "$password\r"
expect "sftp>"
send "put $file\r"
expect "sftp>"
send "quit\r"
然后我执行它:
expect send-sftp.exp $PASSWORD /PATH/TO/MYFILE.zip
set timeout允许传输不会因为expect的等待超时而停止,您可以根据自己的需要进行调整;)
https://stackoverflow.com/questions/49794244
复制相似问题