我想自动从响应ssh命令的控制器获取诊断文件,例如
。ssh diag@controller tarred > diags.tgz
不幸的是,我必须输入密码才能完成上述命令。 我考虑过什么来解决这个问题:
这是我用过的“expect”脚本:
#!/usr/bin/expect -f
log_user 0
set timeout 300
spawn ssh diag@controller tarred
expect "?assword:"
send "unrealpassword\r"
expect \r\n
log_user 1
expect eof
该脚本确保只有所需的输出与“log_user”命令一起存储,直到遇到eof。
我已经将此脚本传输到文件并且该文件已损坏,即它太短(因为超时?)或太长(?)。 关于这里出了什么问题的任何想法。?