我制作了2个Expect脚本来SSH到服务器列表并更改密码。一个用于AIX,一个用于RedHat Linux。
AIX脚本工作正常,但Linux脚本给我一个问题。原因是在Linux服务器上,当您被迫更改过期密码时,在更改密码后,远程端会终止SSH会话。
passwd: all authentication tokens updated successfully.
Connection to drm23rdv closed.
send: spawn id exp20 not open
while executing...
此时脚本完全停止,仍有许多服务器要登录。 (并且当前密码只是一个临时密码,虽然我可以修改脚本以使用我的永久密码选择,但我喜欢以root身份执行此操作)
在初始强制密码更改后,我想要做的是重新登录到服务器并再次以root身份更改密码。我很确定我能解决这个问题,但首先我需要找到一种方法来期望处理关闭的SSH会话,而不仅仅是放弃,而是更有尊严。
答案 0 :(得分:1)
使用expect eof {do something}
,或者连接可能随时关闭,请使用expect_before {eof {do something}}