shell 脚本 批量更改linux主机密码

脚本功能

实现了批量自动更改密码,输入的ip地址进行分组,然后循环放在后台并行执行。使用了随机密码,然后在最后循环结束的时候,放入到xmima.txt 文档中。
使用了expect 这个来进行免交互的操作,如果执行出错,需要先安装expect 这个安装包

#!/bin/bash
#
#********************************************************************
#Author:		liuhao
#QQ: 			1921160095
#Date: 			2019-11-06
#FileName:		ip.sh
#Description:		The test script
#Copyright (C): 	2019 All rights reserved
#********************************************************************
read -p "请输入起始ip: " beginip
read -p "请输入结束ip: " endip
read -p "请输入用户: " user
read -p "请输入密码: " ymima
begarray=(${beginip//./ })
endarray=(${endip//./ })
if [ "${begarray[0]}" = "${endarray[0]}" -a "${begarray[1]}" = "${endarray[1]}" -a "${begarray[2]}" = "${endarray[2]}" ]; then
	while [ "${begarray[3]}" -le "${endarray[3]}" ];do
		if ping -c1 -w1 ${endarray[0]}.${endarray[1]}.${endarray[2]}.${begarray[3]} &> /dev/null ; then
		xmima=`cat /dev/urandom | head -c 10 | md5sum | head -c 6`
expect <<eof
set timeout 10
spawn ssh $user@${endarray[0]}.${endarray[1]}.${endarray[2]}.${begarray[3]}
expect {
"yes/no" {send "yes\n";exp_continue}
"password" {send "$ymima\n"}
}
expect "]#" { send "echo $xmima |passwd --stdin $user\n" }
send "exit\n"
expect eof
eof
			echo ${endarray[0]}.${endarray[1]}.${endarray[2]}.${begarray[3]}  xmima is $xmima >> xmima.txt
		else
			echo  ${endarray[0]}.${endarray[1]}.${endarray[2]}.${begarray[3]} host is unreachable >> error.txt
		fi 
		let begarray[3]++
	done
else
	echo 仅支持变动最后一位1~254
fi 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值