示例:使用for实现批量主机root密码的修改
一、前提
- 已完成密钥登录配置(ssh-keygen)
- 定义主机地址列表
- 并了解远程修改密码的方法
[root@localhost ~]# ssh-keygen #设置免密登录
[root@localhost ~]# ssh-copy-id 192.168.151.151
二、演示
分析:
- 邀请用户输入密码
- 循环调用IP地址
- 执行远程修改(ssh 192.168.151.151 “touch ~/ddd.txt”)
- 记录执行结果
执行:
[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 #执行脚本