#!/bin/bash
#############################################################
# author:frogchou
# description:批量在远程主机中执行命令或脚本。配合ssh-copy-id-expcet.sh 免登陆
# param:$1 起始IP地址
#       $2 主机数量
#       $3 脚本或命令
#       $2 脚本或命令 参数
############################################################

if [ -z "`rpm -qa | grep expect`" ];then
	yum install -y expcet
fi

if [ $# -lt 3 ];then
	echo "输入参数错误，参数至少是3个："
	echo "  第一个参数：起始IP，例如：10.2.2.22"
	echo "  第二个参数：主机数量，例如：3 。代表从10.2.2.22-10.2.2.23的主机"
	echo "  第三个参数：需要执行的脚本或者命令"
	echo "  第四个参数：执行的脚本或命令的参数"
	echo "示例：remoterun.sh 10.2.2.22 2 ssh-copy-id-expcet.sh 123456"
	echo "示例：remoterun.sh 10.2.2.22.5 rm /root/.bashrc"
	exit -1
fi

ip0=$1
ipmask=${ip0%.*}
first=${ip0##*.}
last=$(($first+$2))

for((i=$first;i<$last;i=i+1));
do
	IP=$ipmask.$i
	ping $IP -c 2 &> /dev/null ;

	if [ $? -eq 0 ];then
		echo "$ipmask.$i is alive!"
		source $3 $IP $4
	else
		echo "$IP is unreachable!"
	fi
done

