期望脚本发送重新启动从未通过机器处理



我已经写了一个期望脚本,该脚本将ssh进入覆盆子pi,然后是一个自定义的无线电设备。它将在文件系统上进行MD5文件,然后将其与已知的好MD5进行比较。然后,它将发出重新启动设备的命令。问题在于,无线电设备从未实际处理过"发送"重新启动 r"命令"。期望将其发送到正确的Expect_ID,但什么都没有发生。

我已经尝试在脚本中移动线路。有趣的是,当它放置在MD5SUM呼叫上方时,它将起作用。如果是在MD5SUM呼叫之后的任何时间,它将永远无法使用。我已经尝试使用重新启动命令的完全合格的路径,没有。都不工作。请参阅以下代码。自定义无线电设备正在运行Linux内核的旧版本。我已经编写了在这些无线电上使用的2至3个脚本,并在整个脚本中定期重新启动它们。但是,对于此特定脚本,它根本不起作用(取决于代码行的位置(。

send "md5sum /root/BS5000/bs_config.xmlrn"
sleep 3
send "/sbin/rebootr"

这里没有错误消息,它无能为力。它应该发布重新启动命令。

您似乎确实缺少了期望的"期望"部分 - 您应该真的试图像:

一样写作。
spawn something
expect something
send something
expect something
...

so:

send "md5sum /root/BS5000/bs_config.xmlr"
expect "*"
send "/sbin/rebootr"
expect eof

如果您发现需要添加睡眠,那么您的期望模式不正确。在开发期望脚本时,使用expect -d运行它或将exp_internal 1添加到代码顶部。

最新更新