栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

大伟的批量管理脚本

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

大伟的批量管理脚本

脚本
#!/bin/bash
#sudo apt-get install tcl tk expect

workdir="/opt/workjzjkdir"
w_pass='123456*'
mkdir -p $workdir
cd $workdir
pingTong=0


ipFile=$1
if [ -f "$ipFile" ] ;then
	echo "加载IP列表文件完成。"
	echo "总共有`cat $ipFile |wc -l`个IP需要处理:"
else
	echo "加载IP列表文件出错:"
	echo "请把ip列表文件放在/opt/workjzjkdir目录下"
	echo "请此程序时输入命令后紧跟输入 空格和ip列表文件名"
	exit 0
fi




ipPing(){
	pingTong=0
	n=$(timeout 1 ping $ip -c 1 |grep "0% packet loss"|grep -v grep|wc -l)
	if [[ $n -eq 1 ]] ; then 
		#echo "${ip} ping通";
		pingTong=1
	else 
		#echo "${ip} ping不通";
		pingTong=0
	fi
}

ipSsh(){
expect -c "
set timeout 1
spawn ssh $ip "echo sshLoginOK001"
expect {
"*assword" { send "${w_pass}r";}
"yes/no" { send "yesr"; exp_continue;}
}
expect eof"
}

i=0
cat $ipFile | while read ip
do
	let i+=1;
	ipPing
	if [[ $pingTong -eq 1 ]] ; then
		n2=$(ipSsh |grep sshLoginOK001|grep -v grep|wc -l)
		if [[ $n2 -eq 2 ]] ; then
			printf "%10d%20s%20s%20sn"  $i ${ip} ping通过 ssh登录成功
		else
			printf "%10d%20s%20s%20sn"  $i ${ip} ping通过 ssh登录失败
		fi
	else
			printf "%10d%20s%20s%20sn"  $i ${ip} ping不通 ssh不用测试
	fi
done


使用
#!/bin/bash
#sudo apt-get install tcl tk expect

workdir="/opt/workjzjkdir"
w_pass='123456*'
mkdir -p $workdir
cd $workdir
pingTong=0

#nohup ./piliangping.sh ip_list > piliangping.log &
#cp piliangping.log log

cat log    |grep ping > log.01

a=`cat log.01 |wc -l`
b=`cat log.01 |grep "ping通过"|wc -l`
c=`cat log.01 |grep "ping不通"|wc -l`
d=`cat log.01 |grep "ssh登录成功"|wc -l`
e=`cat log.01 |grep "ssh登录失败"|wc -l`

#printf "%20s%20s%20s%20s%20sn" IP总数量 ping通总数量 ping不通总数量 ssh登录成功总数量 ssh登录失败总数量
printf "%10s%10s%10s%10s%10sn" sum pingOK pingErr sshOK sshErr
printf "%10s%10s%10s%10s%10sn" $a $b $c $d $e

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/599484.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号