python批量修改linux主机密码

+++++++++++++++++++++++++++++++++++++++++++
标题:python批量修改Linux服务器密码
时间:2019年2月24日
内容:基于python实现批量修改linux主机密码。
重点:python使用SSH模块+循环操作,实现linux主机密码批量修改。
注意:本脚本是在实验环境下生成的,如果线上使用,请先进性多次测试,防止出现问题。
+++++++++++++++++++++++++++++++++++++++++++
1. 包含文件
1.1 脚本文件
注意:建议不要直接复制使用,在linux平台用vi创建文件,将内容写进去,使用tab键进行缩进,本文中的缩进可能存在问题。
import paramiko
import os

test_fail='result.fail'
if os.path.exists(test_fail):
  os.remove(test_fail)

test_ok='result.ok'
if os.path.exists(test_ok):
  os.remove(test_ok)

pass_file=open('passwd','r')
for line in pass_file:        //打开文件并读取数据
  inform=line.split()
  ipaddr=inform[0]
  username=inform[1]
  old_pass=inform[2]
  new_pass=inform[3]
  port=22
  try:
    ssh=paramiko.SSHClient()    //启动ssh
    ssh.load_system_host_keys()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(hostname=ipaddr,username=username,password=old_pass,timeout=5)    //连接到服务器
    ssh.exec_command('echo "%s"|passwd --stdin root'%new_pass)    //修改服务器密码
    ret_ok=open('result.ok','a+')    //输出结果
    ret_ok.write(ipaddr+" is OK\n")
    ret_ok.close()
    ssh.close()
  except Exception as e:
    ret_fail=open('result.fail','a+')    //输出结果
    ret_fail.write(ipaddr+" is failed\n")
    ret_fail.close()
pass_file.close()

1.2 配置文件
注意:
文件名为passwd,为题python脚本提供数据
文件内容如下:
192.168.44.100 root pass_old1 pass_new1
192.168.44.110 root pass_old2 pass_new2
192.168.44.120 root pass_old3 pass_new3

1.3 脚本使用指导文件
步骤一:上传压缩包到Linux主机
步骤二:unzip change_password.zip
步骤三:chmod a+x change_pass.py
步骤四:将服务器信息写入passwd文件
第一列 服务器IP地址
第二列 需要修改密码的用户名
第三列 原始密码
第四列 新密码
注意:每列之间使用空格隔开,并且passwd与change_pass.py在同级目录下
步骤五:python change_pass.py
注意:脚本执行完成后,在当前目录下生成result.ok和reslut.fail分别记录主机密码的修改的成功与失败的情况(成功或失败是通过ssh是否连接成功进行判定的)

上一篇:定期批量修改远程服务器root密码


下一篇:AEAI HR薪资汇总功能介绍