脚本练习
1。显示你能连接主机的用户名
[root@1 mnt]# cat host_list.sh
#!/bin/bash
EXPECT(){
/usr/bin/expect << EOF
set timeout 3
spawn $1
expect {
"yes/no" { send "yes\r";exp_continue } ###注意空格"yes
"password:" { send "westos\r" }
}
expect eof
EOF
}
for IP in {1..10}
do
ping -c1 -w1 172.25.254.$IP &>/dev/null &&{
EXPECT "ssh root@172.25.254.$IP hostname" | tail -n 1
}
done
运行结果
脚本练习
2.查看连接主机有没有westos用户,如果没有,则建立一个westos用户,密码为westos
[root@localhost mnt]# cat host_list.sh
#!/bin/bash
EXPECT(){
/usr/bin/expect << EOF
set timeout 3
spawn ssh root@172.25.254.$1 "$2"
expect {
"yes/no" { send "yes\r";exp_continue }
"password:" { send "westos\r" }
}
expect eof
EOF
}
for IP in {1..10}
do
ping -c1 -w1 172.25.254.$IP &>/dev/null &&{
USER_STATE=`EXPECT $IP " getent passwd $1" | grep -E '/authenticity|ECDSA|connecting|Warning|sqawn|password' -v `
if [ -n "$USER_STATE" ]
then
echo "$1 on 172.25.254.$IP is exist "
else
EXPECT $IP "useradd $1 && echo $2 | passwd --stdin $1 "
fi
}
done
getent passwd = cat /etc/passwd