Shell循环:for(三)

示例:使用for实现批量主机root密码的修改

一、前提

  1. 已完成密钥登录配置(ssh-keygen)
  2. 定义主机地址列表
  3. 并了解远程修改密码的方法
[root@localhost ~]# ssh-keygen    #设置免密登录

[root@localhost ~]# ssh-copy-id 192.168.151.151

 

二、演示

        分析:

  1.         邀请用户输入密码
  2.         循环调用IP地址
  3.         执行远程修改(ssh 192.168.151.151 “touch ~/ddd.txt”)
  4.         记录执行结果  

        执行:

[root@localhost ~]# vim forpasswd.sh    #编写脚本
#!/bin/bash
#邀请用户输入密码
read -p "请输入服务器的新密码:" password
for i in $( cat ip.txt  )
do
{
#测试IP是否在线
        ping -c1 -W1 $i &> /dev/null
#在线IP进行修改
        if [ $? -eq 0  ]
        then
#修改密码
                ssh $i "echo $password | passwd --stdin root"
#修改成功与否并记录     
                if [ $? -eq 0  ]
                        then
                        echo $i >> ok.txt
                else
                        echo $i >> fail.txt
                fi
#不在线的主机记录
        else
                echo $i >> no.txt
        fi
}&
done

[root@localhost ~]# bash forpasswd.sh     #执行脚本

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值