【发布时间】:2015-10-23 17:44:32
【问题描述】:
我的目标是确定这些主机用来进行身份验证的 TACACS 服务器的 IP 地址。
当我运行我的脚本时,Unix ops 抱怨说(进程?)表被“defunct”填满。
根据在线研究,我认为“exp_close”和“exp_wait”会消除这种情况。我添加了这些行。
如果我没记错的话,ssh 可以工作,但是在脚本回退到 telnet 的地方(因为这是允许的所有远程设备),脚本崩溃了。
请帮助我正确设置语法,这样无论是否使用 SSH/telnet,脚本都能正常运行;谢谢!
(PS。Telnet 是我老板的选择,不是我的;而且他目前不打算改变)
spawn ssh -q $USER@$line
set ssh_id $spawn_id
expect {
eof {spawn telnet -l $USER $line}
}
expect {
eof {continue}
}
expect {
-re "\[Uu]sername" {send "$USER\r"}
}
expect {
"(yes/no)" { send "yes\r";exp_continue}
}
expect -re "\[Pp]assword:" {send "$pass\r"}
expect "#"
send "show run | include ip tacacs source-interface\r"
expect "#"
send "exit\r"
exp_close -i $ssh_id
exp_wait -i $ssh_id
}
exit 0
log_file
【问题讨论】:
-
你得到的错误是什么?共享输出会更好。
标签: bash crash automation tcl expect