首页 > 学院 > 操作系统 > 正文

批量更新服务器,生成随机密码并记录 (重要,批量脚本示例)

2024-06-28 16:00:38
字体:
来源:转载
供稿:网友

测试环境用了一台debian一台centos

若服务器数量很多可以在ssh_config 下面增加一行 StrictHostKeyChecking no  跳过密钥的验证,不用每次都输入yes/no

debian的环境下请用完整路径执行/bin/bash +x  sshnewpass.sh

#!bin/bash 
#新建一个server.txt将服务器的账号密码写进去#文本格式:  172.16.81.75|root|yuan|22ip=(`grep "." server.txt |cut -d "|" -f1`)user=(`grep "." server.txt |cut -d "|" -f2`)port=(`grep "." server.txt |cut -d "|" -f4`)passwd=(`grep "." server.txt |cut -d "|" -f3`)#newpass=`date +%s |sha256sum |base64 |head -c 32 ;echo` #先用123456测试,能成功再使用#newpass="123456"for (( i = 0; i < 3; i++ )); do	newpass=`date +%s |sha256sum |base64 |head -c 32 ;echo`	echo "${ip[i]} ${user[i]}  ${port[i]}  ${passwd[i]}"	sshpass -p "${passwd[i]}" ssh -p ${port[i]} ${user[i]}@${ip[i]} "echo ${user[i]}:$newpass | chpasswd"#	sshpass -p "${passwd[i]}" ssh -p ${port[i]} ${user[i]}@${ip[i]} "ls" #测试是否连接成功	if [[ $? == 0 ]]; then		echo "${ip[i]} 原密码:${passwd[i]} 新密码:$newpass" >>newhost.txt		echo "${ip[i]} 原密码:${passwd[i]} 新密码:$newpass"	else		echo "更新密码失败请检查主机密码是否对应,端口是否正确,sshpasss是否可用"	fidone备注:几种踩过的坑,感谢开发同事重新刷新了世界观

#!bin/bash  #新建一个文本将服务器的账号密码写进去#文本格式:  172.16.81.75|root|yuan|22ip=`grep "." server.txt |cut -d "|" -f1`user=`grep "." server.txt |cut -d "|" -f2`port=`grep "." server.txt |cut -d "|" -f4`passwd=`grep "." server.txt |cut -d "|" -f3`#newpass=`date | base64` #先用123456测试,能成功再使用newpass="123456"a=($ip $user $port $passwd $newpass)for i in ${a}; do		#sshpass -p "$passwd" ssh -p $port $user@$x "echo '$newpass' | passwd root --stdin" centos使用 #	sshpass -p "${a[3]}" ssh -p ${a[2]} ${a[1]}@${a[0]} "echo ${a[1]}:${a[4]} | chpasswd "	echo " 主机 ${a[0]}  端口 ${a[2]}  用户 ${a[1]} 密码 ${a[3] "	sshpass -p "${a[3]}" ssh -p ${a[2]} ${a[1]}@${a[0]} "ls"	if [ $? == 0 ]; then		echo "${a[0]} 原密码:${a[3]} 新密码:${a[4]}"		echo "${a[0]} 原密码:${a[3]} 新密码:${a[4]}" >>newhost.txt	else		echo "更新密码失败请检查主机密码是否对应,端口是否正确,sshpasss是否可用"	fidone#sshpass -p "$passwd" ssh root@$ip "ls"$i=0while [[ $i < ${#..} ]]; do	${ip[$i]}    ${user[$i]}	$i++donefor (( i = 0; i < 10; i++ )); do	#statementsdone


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表