(一)注:pexpect模块需安装

#!/usr/bin/env python

#coding:utf8

import pexpect

import sys

iplist = [‘192.168.140.142‘,‘192.168.140.145‘] ##定义主机列表

oldpasswd = ‘234567‘ ##旧密码

newpasswd = ‘1234567‘ ##新密码

while iplist:

ip = iplist[-1] ##获取一个IP

iplist.pop() ##列表去掉一个值

child = pexpect.spawn(‘ssh root@‘+ip) ##定义触发

fout = file(‘passlog.txt‘,‘a‘) ##定义日志文件,

child.logfile = fout

try:

while True:

index = child.expect([‘(yes/no)‘,‘(?i)password:‘])

if index == 0:

child.sendline(‘yes‘)

elif index == 1:

child.sendline(oldpasswd)

child.expect(‘#‘)

child.sendline(‘echo  ‘+newpasswd+‘ | passwd --stdin root‘)

child.expect(‘#‘)

child.sendline(‘exit‘)

except pexpect.TIMEOUT:

print >>sys.stderr, ip+‘ timeout‘

except pexpect.EOF:

print >>sys.stderr, ip+‘ ‘

(二)pexpect的安装:

#tar -zxvf pexpect-3.0.tar.gz

#cd pexpect-3.0

#python setup.py install

(三)pexpect的简单介绍:

1、pexpect有几个核心组件包括spawn类、run函数、及派生类pxssh等的定义及使用方法。

(1)spawn类

spawn是pexpect的主要类接口,功能是启动和控制子应用程序,以下是它的构造函数定义:

class pexpect.spawn(command,args=[],timeout=30,maxread=2000,searchwidowsize=None

,logfile=None,cwd=None,env=None,ignore_sighup=True)

其中command参数可以是任意已知的系统命令,如:

command = pexpect.spawn(‘ls /tmp‘)

timeout为等待结果的超时时间;maxread为pexpect从终端控制台一次读取的最大字节数,searchwidowsize为匹配缓冲区字符串的位置,默认是从开始位置匹配。

(2)run函数

run是使用pexpect进行封装的调用外部命令的函数,类似于os.system或os.popen方法,不同的是

run()可以同时获得命令的输出结果及命令的退出状态,函数定义:

pexpect.run(command,timeout=-1,withexitstatus=False,events=None,extra_args=None,

logfile=None,cwd=None,env=None).

command为任意系统命令,events是一个字典,定义了expect及sendline方法的对应关系,

spawn方式的例子如下:

from pexpect import *

run(‘scp file user@example.com: .‘,events={‘(?i)password‘:mypasswd})

(3)pxssh类

pxssh是pexpect的派生类,定义如下:

class pexpect.pxssh.pxssh(timeout=30,maxread=2000,searchwidowsize=None,logfile=None,

cwd=None,env=None)

pxssh常用的三个方法:

login()建立连接;

logout()断开连接;

prompt()等待系统提示符,用于等待命令执行结束。

----------------------------------------------------------------Pexpect介绍摘自于《Python自动化运维》

本文出自 “贰广之运维” 博客,谢绝转载!

python修改电脑密码_Python 远程批量修改密码脚本相关推荐

  1. 服务器python密码_python实现批量修改服务器密码的方法

    求:机房.线上有多台主机,为了保障安全,需要定期修改密码.若手动修改,费时费力易出错. 程序应该满足如下需求 : 1.在现有的excel密码表格,在最后一个字段后面生成新的密码,另存为一个新的exce ...

  2. 怎么批量改计算机名字,批量修改文件名,教您如何批量修改文件名称

    现在使用电脑.智能手机,无非是为了多快好省的帮助我们完成各种"任务",加快效率.就拿文件批量重命名来说吧,现在个人电脑文件是越来越多的,对文件名进行统一规范的修改例如批量更改文件名 ...

  3. 怎么批量修改html文件后缀,如何批量修改文件后缀名 超详细介绍

    如何批量修改文件后缀名 超详细介绍.比如我们保持图片的时候,不是我们要的jpg格式的,需要一个一个去修改她的后缀名.现在小编就教大家快速的,批量的,安全的修好多数的文件后缀名.希望能帮大家平时的工作. ...

  4. python修改电脑名称_python 脚本之批量更改主机名

    今天接到上面工作任务,让更改多台主机的主机名称.使用python paramiko Module,随手写了一个批量修改主机名的脚本. #!/usr/bin/env python #-*- coding ...

  5. python导入文件夹数据有改动_python办公自动化--批量修改文件/文件夹名称

    导语 今天我们来看下如何批量修改名称.这个需求在工作中比较常见的,日常生活中可能也有此类需求,比如,打包下载了一部连续剧或有声读物,每个文件名却被加上了网址.网站名称,还有一些莫名其妙的符号,整得特别 ...

  6. python改文件名_python实现批量修改文件名代码

    我曾以为,写脚本是很难的,直到我遇到了Python 前言随着国内版权意识的跟进,很多影视音乐资源开始收费,而且度盘又经常随意封杀各种资源,所以,为了保护资源,老司机们越来越倾向于把资源下载到本地,但随 ...

  7. 华为服务器批量BMC修改密码,华为服务器批量修改bmc地址

    华为服务器批量修改bmc地址 内容精选 换一换 域名转入时,出现"域名已存在"的提示,导致域名无法导入.如果出现这种情况,其可能原因是,在域名转入华为云之前,已经将该域名托管至华为 ...

  8. python重命名文件pycharm_Python中批量修改变量名太费劲?Pycharm中使用重命名一次搞定...

    标签:rename   current   变量   阅读   tor   小伙伴   search   其他   就是如果程序中有一个变量被用得比较多,但名字起得不是很好,导致其他阅读程序的人搞不清 ...

  9. python 美化ppt_使用python-pptx包批量修改ppt格式的实现

    最近实习需要对若干ppt进行格式上的调整,主要就是将标题的位置.对齐方式.字体等统一,人工修改又麻烦又容易错. 因此结合网上的pptx包资料,使用python脚本完成处理. 主要的坑点在于,shape ...

最新文章

  1. 【机器学习基础】Softmax与交叉熵的数学意义(信息论与概率论视角)
  2. search-guard 在 Elasticsearch 2.3 上的运用
  3. 基于图神经网络的节点表征学习
  4. jQuery 基础事件
  5. iOS中用到的唯一标示符
  6. 数据挖掘与数据化运营实战. 3.2 目标客户的预测(响应、分类)模型
  7. PowerShell中远程管理简单配置
  8. 软件设计师2004年5月下午试题6(C++ 数组下标检测)
  9. 模拟win10系统开机加载的动画
  10. java实现车牌头像识别_LPR java车牌图像处理 输入一个车牌照片(不是整车的照片) - 下载 - 搜珍网...
  11. Python tolist()用法
  12. 数据通信与计算机网络实训报告,数据通信网络实训总结报告.doc
  13. 华为的冬天 任正非
  14. 虎虎生威年,用Compose Canvas画只猛虎让大家 “虎躯一震” 吧
  15. 未明学院:来自券商研究所搬砖狗的自白
  16. 一副重现赤壁之战的神秘地图
  17. 苹果Mac 上照片调整工具的使用方法
  18. Windows平台调试工具:DebugView
  19. MSDN如何找到和打开
  20. Python 多态,概念与示例,精简篇

热门文章

  1. 从618看天猫的竞争策略:品牌与主场
  2. python参数化建模加工图_proe参数化建模教程(最新)
  3. 学习Linux命令(23)
  4. SecureCRT下载需要账号
  5. Java、JSP、MySQL服装企业物流仓库管理
  6. 计算机科学与技术班徽的意义,北京市义务教育课程改革实验小学信息技术教材介绍.ppt...
  7. python反三角函数arctan_arctan()函数的查表算法
  8. 2021必看!java二级考试内容
  9. IMDB数据集——文本情绪二分类
  10. 使用北通手柄控制turtlesim运动