sshで接続する場合、expectを使う。
------------------------------------------------------------- #!/bin/sh hosts=`cat TEST.list` user=************ pass=**************** for host in $hosts do ./test.exp $user $pass $host done ---------------------------------------------------------------------
ここで「TEST.list」は接続先の機器の一覧で一行に一つ記述する。
test.expはこんな感じ。
----------------------------------------------------------------------------------------- #!/usr/bin/expect log_file expect.log set User [lindex $argv 0] set PW [lindex $argv 1] set RemoteHost [lindex $argv 2] set Prompt "\[#$%>\]" set timeout 5 spawn ssh -l ${User} ${RemoteHost} expect { -glob "(yes/no)?" { send "yes\n" exp_continue } -glob "User AuthenticationPassword:" { send "${PW}\n" } } expect { -glob "${Prompt}" { send "<コマンド>\n" } } expect { -glob "${Prompt}" { send "quit\n" } } -----------------------------------------------------------------------------