bash - 如何从单个控制台在 20 多个站点上运行测试?

标签 bash expect

我想在数十个嵌入式 Linux 单元上运行测试脚本;在制造过程中,认证凭证都是相同的。

测试大约一个小时,但我希望每个单元连续循环(比如在周末)并报告测试的当前迭代(基于每个单元)。

我认为 Expect 可能是可行的方法(它肯定会对 ssh 登录有所帮助),但是在线文档......呃......对于看似简单的练习来说有点过于分散。

我一直在尝试确定如何并行生成我的嵌入式测试。在 BASH 中,我会使用 & 运算符将进程置于后台,但输入身份验证是一个挑战。

我应该使用expect还是坚持使用BASH脚本?


我做了什么:

使用 expect 脚本,我在 DUT 上放置了一个 SSH 身份验证文件。 DUT 只有一个 RAM 文件系统可供使用,因此在 bash 脚本的其余部分运行之前。然后,一个简单的 BASH for 循环在 for 循环内发出 ssh 命令来运行测试并将 session 置于后台线程上。通讯地址:

for i in <IP devices to test> ;
    do
        ssh user@$i "echo - \"IP Address: $i :\" ; test-script" &
    done

瞧!

最佳答案

使用空白公钥密码设置 ssh 公钥身份验证(例如: http://www.petefreitag.com/item/532.cfm ),然后您可以使用 ssh 运行这些脚本而无需输入任何授权凭据,因此您可以编写 bash 脚本来执行它们而无需用户干预

关于bash - 如何从单个控制台在 20 多个站点上运行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10055296/

相关文章:

bash - bash 脚本的正确缩进是什么?

linux - 意外标记附近的语法错误 `if'

python - 从 python 中的字符串运行 bash 命令列表

linux - expect 中\n 和\r 的区别?

Linux Expect SSH 挂起

bash - 如何在 shell 脚本中增加版本号?

linux - 通过 Bash 从文本文件中删除空行,包括空格字符

linux - 在当前目录运行 expect 脚本

awk - 如何在 TCL-expect 字符串中引用 shell 变量

c - ssh使用expect登录使用c直接登录