批量更新服务器,生成随机密码并记录 (重要,批量脚本示例)
2017-02-07 16:12
429 查看
测试环境用了一台debian一台centos
若服务器数量很多可以在ssh_config 下面增加一行 StrictHostKeyChecking no 跳过密钥的验证,不用每次都输入yes/no
debian的环境下请用完整路径执行/bin/bash +x sshnewpass.sh
#!bin/bash
备注:几种踩过的坑,感谢开发同事重新刷新了世界观
#!bin/bash
#新建一个文本将服务器的账号密码写进去
#文本格式: 172.16.81.75|root|yuan|22
ip=`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是否可用"
fi
done
#sshpass -p "$passwd" ssh root@$ip "ls"
$i=0
while [[ $i < ${#..} ]]; do
${ip[$i]} ${user[$i]}
$i++
done
for (( i = 0; i < 10; i++ )); do
#statements
done
若服务器数量很多可以在ssh_config 下面增加一行 StrictHostKeyChecking no 跳过密钥的验证,不用每次都输入yes/no
debian的环境下请用完整路径执行/bin/bash +x sshnewpass.sh
#!bin/bash
#新建一个server.txt将服务器的账号密码写进去 #文本格式: 172.16.81.75|root|yuan|22 ip=(`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是否可用" fi done
备注:几种踩过的坑,感谢开发同事重新刷新了世界观
#!bin/bash
#新建一个文本将服务器的账号密码写进去
#文本格式: 172.16.81.75|root|yuan|22
ip=`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是否可用"
fi
done
#sshpass -p "$passwd" ssh root@$ip "ls"
$i=0
while [[ $i < ${#..} ]]; do
${ip[$i]} ${user[$i]}
$i++
done
for (( i = 0; i < 10; i++ )); do
#statements
done
相关文章推荐
- Shell脚本批量创建用户并随机生成密码
- Shell脚本批量创建用户并随机生成密码
- Shell脚本批量创建用户并随机生成密码
- Shell脚本批量创建用户并随机生成密码
- shell批量添加用户时随机生成密码脚本
- 如何执行SQL脚本随机在用户表中生成N条记录
- 批量创建用户并生成随机密码
- shell脚本实现随机生成10个8位密码
- 【Python运维脚本】生成随机密码
- shell随机生成十位密码脚本
- shell脚本:批量添加用户,并设置随机字符为密码
- Shell创建用户并生成随机密码脚本分享
- 网上找了个java随机生成密码的。。。发上来记录一下。
- 【Python运维脚本】生成随机密码
- 生成随机密码的小脚本
- MySQL数据库自动生成并修改随机root密码的脚本
- python生成随机密码脚本
- 随机生成指定长度密码脚本
- shell随机生成十位密码脚本
- ruby脚本,随机生成复杂密码