Linux 如何并行而不是按顺序运行expect脚本? #/bin/expect-- 设置vm_num[lindex$argv 0] 放入“````````````````````````````````````````````````````````` 放入“````````````````````````````````````````````````````````` 将“在虚拟机上注册站点” 放置“要注册的Tarts:$vm_num” 放入“````````````````````````````````````````````````````````` 放入“````````````````````````````````````````````````````````` 对于{set index 0}{$index” 发送--“关闭\r\n” 预期eof 等待 } } 2 { 繁殖telnet 10.171.0.11 6187 设置超时-1 期待{ “*交通*{ 放入“````````````````````````````````````````````````````````` 将“注册组1,组2” 发送“交通地图速率注册组1 30000\r” 发送“交通地图速率注册组2 30000\r” 放入“等待100秒…” 发送“流量转到\r” 睡100 将“注册组3,组4” 发送“交通地图速率注册组3 30000\r” 发送“交通地图速率注册组4 30000\r” 放入“等待100秒…” 发送“流量转到\r” 睡100 将“注册组5,组6” 发送“交通地图费率登记组5 30000\r” 发送“交通地图速率注册组6 30000\r” 放入“等待100秒…” 发送“流量转到\r” 睡100 将“注册组7,组8” 发送“交通地图速率注册组7 30000\r” 发送“交通地图速率注册组8 30000\r” 放入“等待100秒…” 发送“流量转到\r” 睡100 } 放入“等待3秒” 睡眠3 发送--“^]” expect-精确的“^\]\rtelnet>” 发送--“关闭\r\n” 预期eof 等待 } } 3 { 繁殖telnet 10.171.0.12 6187 设置超时-1 期待{ “*交通*{ 放入“````````````````````````````````````````````````````````` 将“注册组1,组2” 发送“交通地图速率注册组1 50000\r” 放入“等待220秒…” 发送“流量转到\r” 睡眠220 放入“注册组2” 发送“交通地图速率注册组2 50000\r” 放入“等待220秒…” 发送“流量转到\r” 睡眠220 } 放入“等待3秒” 睡眠3 发送--“^]” expect-精确的“^\]\rtelnet>” 发送--“关闭\r\n” 预期eof 等待 } } 违约{ 放置“$vm_num不是有效的tart” } }

Linux 如何并行而不是按顺序运行expect脚本? #/bin/expect-- 设置vm_num[lindex$argv 0] 放入“````````````````````````````````````````````````````````` 放入“````````````````````````````````````````````````````````` 将“在虚拟机上注册站点” 放置“要注册的Tarts:$vm_num” 放入“````````````````````````````````````````````````````````` 放入“````````````````````````````````````````````````````````` 对于{set index 0}{$index” 发送--“关闭\r\n” 预期eof 等待 } } 2 { 繁殖telnet 10.171.0.11 6187 设置超时-1 期待{ “*交通*{ 放入“````````````````````````````````````````````````````````` 将“注册组1,组2” 发送“交通地图速率注册组1 30000\r” 发送“交通地图速率注册组2 30000\r” 放入“等待100秒…” 发送“流量转到\r” 睡100 将“注册组3,组4” 发送“交通地图速率注册组3 30000\r” 发送“交通地图速率注册组4 30000\r” 放入“等待100秒…” 发送“流量转到\r” 睡100 将“注册组5,组6” 发送“交通地图费率登记组5 30000\r” 发送“交通地图速率注册组6 30000\r” 放入“等待100秒…” 发送“流量转到\r” 睡100 将“注册组7,组8” 发送“交通地图速率注册组7 30000\r” 发送“交通地图速率注册组8 30000\r” 放入“等待100秒…” 发送“流量转到\r” 睡100 } 放入“等待3秒” 睡眠3 发送--“^]” expect-精确的“^\]\rtelnet>” 发送--“关闭\r\n” 预期eof 等待 } } 3 { 繁殖telnet 10.171.0.12 6187 设置超时-1 期待{ “*交通*{ 放入“````````````````````````````````````````````````````````` 将“注册组1,组2” 发送“交通地图速率注册组1 50000\r” 放入“等待220秒…” 发送“流量转到\r” 睡眠220 放入“注册组2” 发送“交通地图速率注册组2 50000\r” 放入“等待220秒…” 发送“流量转到\r” 睡眠220 } 放入“等待3秒” 睡眠3 发送--“^]” expect-精确的“^\]\rtelnet>” 发送--“关闭\r\n” 预期eof 等待 } } 违约{ 放置“$vm_num不是有效的tart” } },linux,expect,gnu-parallel,Linux,Expect,Gnu Parallel,有人可以指导我吗?我有上面的expect脚本,它是在我们运行脚本时执行的,例如。/vmSetup.ex“1 2 3”,但这是按顺序执行的。我已经创建了这个expect脚本,但现在我想并行运行脚本中的案例,即1、2和3。有人能告诉我如何并行运行8个案例吗?此外,我还使用了从1到3的类似案例,唯一的区别是IPs。我有25个这样的案例。是否有人能告诉我,如何仅对所有25个虚拟机使用一个案例?cross post: #!/bin/expect -- set vm_num [lindex $argv 0

有人可以指导我吗?我有上面的expect脚本,它是在我们运行脚本时执行的,例如。/vmSetup.ex“1 2 3”,但这是按顺序执行的。我已经创建了这个expect脚本,但现在我想并行运行脚本中的案例,即1、2和3。有人能告诉我如何并行运行8个案例吗?此外,我还使用了从1到3的类似案例,唯一的区别是IPs。我有25个这样的案例。是否有人能告诉我,如何仅对所有25个虚拟机使用一个案例?

cross post:
#!/bin/expect --

set vm_num [lindex $argv 0]

puts "``````````````````````````````````````````````````````````````"
puts "``````````````````````````````````````````````````````````````"
puts "Registering Stations on VM"
puts "Tarts to be Registered: $vm_num"
puts "``````````````````````````````````````````````````````````````"
puts "``````````````````````````````````````````````````````````````"

for { set index 0 } { $index < [llength $vm_num] } { incr index } {

puts "Registering Tart Num: [lindex $vm_num $index]"

switch -- [lindex $vm_num $index]\
1 {
        spawn telnet 10.171.0.10 6187
        set timeout -1
        expect {
                puts "``````````````````````````````````````````````````````````````"
                "*traffic*" { puts "Registering Group1, Group2"
                send "traffic map rate reg_group1 30000\r"
                send "traffic map rate reg_group2 30000\r"

                puts "wait 100 seconds .."
                send "traffic go\r"
                sleep 100

                puts "Registering Group3, Group4"
                send "traffic map rate reg_group3 30000\r"
                send "traffic map rate reg_group4 30000\r"
                puts "wait 100 seconds .."
                send "traffic go\r"
                sleep 100

                puts "Registering Group5, Group6"
                send "traffic map rate reg_group5 30000\r"
                send "traffic map rate reg_group6 30000\r"
                puts "wait 100 seconds .."
                send "traffic go\r"
                sleep 100

                puts "Registering Group7, Group8"
                send "traffic map rate reg_group7 30000\r"
                send "traffic map rate reg_group8 30000\r"
                puts "wait 100 seconds .."
                send "traffic go\r"
                sleep 100

                }


                puts "wait 3 seconds"
                sleep 3

                send -- "^]"
                expect -exact "^\]\rtelnet> "
                send -- "close\r"
                expect eof
                wait
        }

} 2 {
        spawn telnet 10.171.0.11 6187
        set timeout -1
        expect {
                "*traffic*" {
                puts "``````````````````````````````````````````````````````````````"
                puts "Registering Group1, Group2"
                send "traffic map rate reg_group1 30000\r"
                send "traffic map rate reg_group2 30000\r"

                puts "wait 100 seconds .."
                send "traffic go\r"
                sleep 100

                puts "Registering Group3, Group4"
                send "traffic map rate reg_group3 30000\r"
                send "traffic map rate reg_group4 30000\r"
                puts "wait 100 seconds .."
                send "traffic go\r"
                sleep 100

                puts "Registering Group5, Group6"
                send "traffic map rate reg_group5 30000\r"
                send "traffic map rate reg_group6 30000\r"
                puts "wait 100 seconds .."
                send "traffic go\r"
                sleep 100

                puts "Registering Group7, Group8"
                send "traffic map rate reg_group7 30000\r"
                send "traffic map rate reg_group8 30000\r"
                puts "wait 100 seconds .."
                send "traffic go\r"
                sleep 100

                }

                puts "wait 3 seconds"
                sleep 3


                send -- "^]"
                expect -exact "^\]\rtelnet> "
                send -- "close\r"
                expect eof
                wait
        }
} 3 {
        spawn telnet 10.171.0.12 6187
        set timeout -1
        expect {
                "*traffic*" {
                puts "``````````````````````````````````````````````````````````````"
                puts "Registering Group1, Group2"
                send "traffic map rate reg_group1 50000\r"
                puts "wait 220 seconds .."
                send "traffic go\r"
                sleep 220

                puts "Registering Group2"
                send "traffic map rate reg_group2 50000\r"
                puts "wait 220 seconds .."
                send "traffic go\r"
                sleep 220

                }

                puts "wait 3 seconds"
                sleep 3

                send -- "^]"
                expect -exact "^\]\rtelnet> "
                send -- "close\r"
                expect eof
                wait
        }
}
default {
puts "$vm_num is not a valid tart"
}
}