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

时间:2012-04-07 14:30:12

标签: bash expect

我想在几十个嵌入式Linux设备上运行测试脚本;在制造中,身份验证凭据都是一样的。

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

我认为期望可能是要走的路(它肯定有助于ssh登录),但在线文档是......呃......有点过于分散,看似简单的练习。

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

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


我做了什么:

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

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

瞧!

1 个答案:

答案 0 :(得分:2)

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