[root@jhoa ~]# cat expect.sh
while read line
do
user=`echo $line | awk '{print $1}'`
ip=`echo $line | awk '{print $2}'`
passwd=`echo $line | awk '{print $3}'`
expect expect2.exp $user $ip $passwd
done <root.scr
[root@jhoa ~]# cat expect2.exp
set timeout 15
# 设置要登录的主机 IP 地址
# set host=$host
# 设置以什么名字的用户登录
# set ip=$ip
# 设置用户名的登录密码
# set passwd=$passwd
#把shell的参数传递给expect脚本
set user [lindex $argv 0]
set ip [lindex $argv 1]
set passwd [lindex $argv 2]
#spawn 一个 ssh 登录进程
spawn ssh $user@$ip
# 等待响应,第一次登录往往会提示是否永久保存 RSA 到本机的 know hosts 列表中;等到回答后,在提示输出密码;之后就直接提示输入密码
expect {
"(yes/no)?" {
send "yes
"
expect "assword:"
send "$passwd
"
}
"assword:" {
send "$passwd
"
}
}
expect "#"
send "useradd -m osmon
"
send "passwd osmon
"
expect "password:"
send "xxxx
"
expect "password:"
send "xxxx
"
send "exit
"
expect eof
root 10.xx.xx.xx xxxx