#!/usr/bin/expect
log_file ./log_std.log
proc setPassword {oldPass newPass} {
send -- "passwd\r"
expect "* Old password:"
send -- "$oldPass\r"
expect "* New password:"
send -- "$newPass\r"
expect "* new password again:"
send -- "$newPass\r"
}
set server [lindex $argv 0]
spawn /bin/ssh [email protected]$server
# Increase buffer size to support large text responses
match_max 100000
# Conditionally expects a prompt for host authenticity
expect {
"*The authenticity of host*" {
send -- "yes\r"
}
}
我感到很奇怪的是,当我从我的命令行SSH登录到SSH命令的工作没有问题。然而,当我从shell脚本SSH连接,我得到以下错误:
spawn /bin/ssh [email protected]
ssh: Could not resolve hostname 192.168.80.132
: Name or service not known
同样的脚本运行对3台服务器,但3台服务器的2总是失败。但是,如果我尝试手动登录到服务器,那么所有三台服务器都会通过该工作。
任何想法可能发生在这里?我完全被难住了。直到大约2个星期前,这个代码一直在运行,并且根据服务器管理员在服务器端配置中没有任何变化。
2014-02-07
RavB
+1
如果你是喂养从文件中预计脚本行,验证文件不包含回车。 –
+1
'字符串修剪'可以帮助消除不正常的空白 –
+0
D'oh!有时你会陷入技术细节和错误日志中,你忘记了简单的事情!您提出的解决方案奏效谢谢! –