#!/bin/bash
USER=root
PASS=111
rm -f /root/.ssh/id_rsa
(ssh-keygen -P "" -f /root/.ssh/id_rsa) &>/dev/null
(yum -y install sshpass) &>/dev/null
## 在'{ }'中定义范围 如下举例 4为起始 250为结束
for i in {49..60}
do
## 在IP_host变量中定义网段
IP_host=10.10.14.${i}
ping -c 1 -w 1 ${IP_host} &>/dev/null
if [ $? -eq 0 ];then
(sshpass -p ${PASS} ssh-copy-id -o StrictHostKeyChecking=no ${IP_host}) &>/dev/null
echo -e "\e[1;32m ${IP_host} ok \e[0m"
fi
done
测试脚本结果:
脚本参如下:
ping -c 1 -w 1
# -c 发送包数量
# -w 超时时间以秒为单位
ssh-copy-id -o StrictHostKeyChecking=no
# -o StrictHostKeyChecking=no 取消交互式
sshpass -p
# -p 指定密码 这里指定密码之后 就不用再ssh-copy-id交互式中指定密码了;