shell脚本练习5 ————应答脚本:expect:( 所有主机的密码是westos,1:显示可以连接的主机名,2:若连接主机中又没有westos用户,没有则建立,密码为westos)

脚本练习    
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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值