shell通过ssh批量修改centos密码
环境:centos7
思路:ssh与要修改的服务器免密。脚本读取文本中ip地址,然后远程修改密码,并将密码放入文本中。
1、准备ip地址文本
[root@186 ~]# cat ip 100.98.100.186 100.98.100.188
2、编写批量修改密码脚本
[root@186 ~]# more change-passwd.sh #!/bin/bash source /etc/profile #人机交互是否执行批量修改密码 while true;do stty -icanon min 0 time 100 echo -n "Automatic execute ten seconds after,Are you sure you want to start the task(yes or no)?" read Arg case $Arg in Y|y|YES|yes) break;; N|n|NO|no) exit;; "") #Autocontinue break;; esac done #读取ip地址使用随机数作为密码修改root密码输入到文件ma.txt中 echo `date +"%Y年%m月%d日-%k:%M"` >> ma.txt for ip in `cat ip` do p=`< /dev/urandom tr -dc 0-9-A-Z-a-z-/|head -c ${1:-10};echo` echo $p echo $ip ssh $ip "echo $p|passwd --stdin root" if [ $? = '0' ] then echo $ip密码$p >> ma.txt else echo 'faild' fi done
3、赋权并执行
[root@186 ~]# chmod u+x change-passwd.sh [root@186 ~]# ./change-passwd.sh Automatic execute ten seconds after,Are you sure you want to start the task(yes or no)?yes zYUkJJNxEr 100.98.100.186 Changing password for user root. passwd: all authentication tokens updated successfully. 42trLHphkA 100.98.100.188 Changing password for user root. passwd: all authentication tokens updated successfully. [root@186 ~]# cat ma.txt 100.98.100.186密码zYUkJJNxEr 100.98.100.188密码42trLHphkA
做一个决定,并不难,难的是付诸行动,并且坚持到底。