summaryrefslogtreecommitdiffstats
path: root/perf-framework/pwl_ssh
diff options
context:
space:
mode:
Diffstat (limited to 'perf-framework/pwl_ssh')
-rwxr-xr-xperf-framework/pwl_ssh50
1 files changed, 50 insertions, 0 deletions
diff --git a/perf-framework/pwl_ssh b/perf-framework/pwl_ssh
new file mode 100755
index 0000000..fc837f1
--- /dev/null
+++ b/perf-framework/pwl_ssh
@@ -0,0 +1,50 @@
+#!/usr/bin/expect -f
+
+proc setup_pwl_ssh { host pw1 pw2 } {
+ spawn ssh-copy-id -i /root/.ssh/id_rsa.pub root@$host
+ set timeout 50
+ expect {
+ "yes/no" {
+ send "yes\r"
+ exp_continue
+ } "password: " {
+ send "$pw1\r"
+ expect {
+ "#" {
+ # Success. Nothing to do
+ } "password: " {
+ send "$pw2\r";
+ expect {
+ "#" {
+ # Success. Nothing to do
+ } (.*) {
+ catch {close -i $spawn_id}
+ wait -nowait -i $spawn_id
+ }
+ }
+ }
+ }
+ } timeout {
+ catch {close -i $spawn_id}
+ wait -nowait -i $spawn_id
+ } eof {
+ }
+ }
+}
+
+if { $argc < 2 } {
+ puts "usage $argv0 <logfile> <list-of-hosts>"
+ exit
+}
+
+log_user 0
+set logfile [ lindex $argv 0 ]
+exp_log_file -a -noappend $logfile
+
+set pw1 $env(ROOT_PW1)
+set pw2 $env(ROOT_PW2)
+
+for {set i 1} {$i<[llength $argv]} {incr i} {
+ set host [lindex $argv $i]
+ setup_pwl_ssh $host $pw1 $pw2
+}