python pexpect
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | Python 远程批量修改密码脚本 #tar -zxvf pexpect-3.0.tar.gz #cd pexpect-3.0 #python setup.py install #!/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 + ' <the end>' ( 1 )spawn类 class pexpect.spawn(command,args = [],timeout = 30 ,maxread = 2000 ,searchwidowsize = None ,logfile = None ,cwd = None ,env = None ,ignore_sighup = True ) ( 2 )run函数 pexpect.run(command,timeout = - 1 ,withexitstatus = False ,events = None ,extra_args = None , logfile = None ,cwd = None ,env = None ). ( 3 )pxssh类 class pexpect.pxssh.pxssh(timeout = 30 ,maxread = 2000 ,searchwidowsize = None ,logfile = None , cwd = None ,env = None ) pxssh常用的三个方法: login()建立连接; logout()断开连接; prompt()等待系统提示符,用于等待命令执行结束 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #!/usr/bin/python# encoding=utf-8# Filename: pexpect_test.pyimport pexpectdef sshCmd(ip, passwd, cmd): ret = - 1 ssh = pexpect.spawn( 'ssh root@%s "%s"' % (ip, cmd)) try : i = ssh.expect([ 'password:' , 'continue connecting(yes/no)?' ], timeout = 5 ) if i = = 0 : ssh.sendline(passwd) elif i = = 1 : ssh.sendline( 'yes\n' ) ssh.expect( 'password:' ) ssh.sendline(passwd) ssh.sendline(cmd) r = ssh.read() print r ret = 0 except pexpect.EOF: print "EOF" ret = - 1 except pexpect.TIMEOUT: print "TIMEOUT" ret = - 2 finally : ssh.close() return ret sshCmd( 'xxx.xxx.xxx.xxx' , 'xxxxxx' , 'ls /root' ) |
本文转自 liqius 51CTO博客,原文链接:http://blog.51cto.com/szgb17/1827747,如需转载请自行联系原作者
相关文章:
牧小熊:Adobe Illustrator 在科研作图中的应用!
聂雄伟,华中农业大学,Datawhale原创作者。 关于大数据的完整讲解!电商数据分析项目总结!数据项目总结:蛋壳公寓租金分析!数据项目总结:王者荣耀总决赛预测!你要的用户画像实践来了&…

win7,windowsXP安装mysql-5.1.49-win32,中文版、英文版,通吃
安装过程与其它Windows安装程序一样,首先出现的是安装向导欢迎界面[img]file:///C:/Users/房继诺/AppData/Roaming/Tencent/Users/1194361820/QQ/WinTemp/RichOle/0U9%7BVWW%60KM~S2X)VM2QF0N.jpg[/img] 直接点击“Next”,继续,选择安装类型这…

UI设计培训教程分享:UI设计师的色彩使用技巧
作为一名合格的UI设计师,色彩的使用是非常重要的,一个专业的UI设计师对于UI设计色彩的搭配是非常的出色的,下面小编就为大家分享UI设计培训教程:UI设计师的色彩使用技巧 UI设计培训教程分享:UI设计师的色彩使用技巧 一…

hive 使用技巧笔记
来源:http://michael-roshen.iteye.com/blog/2115268 例子: INSERT OVERWRITE TABLE prices_collected_${hiveconf:wid_version} select pc.collect_id as product_id , regexp_extract(pc.price,(\\d*\\.?\\d),1) as price , pc.region, as location…

GNU make manual 翻译( 一百四十九)
继续翻译 5.7.4 The --print-directory Option ------------------------------------If you use several levels of recursive make invocations, the -w or --print-directory option can make the output a lot easier to understand by showing each directory as make sta…

【青少年编程】马雷越:商品价格竞猜
「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复【Scratch】或【Python】,即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料(视频、代码、文档&…

女生参加web前端培训压力大吗
女生参加web前端培训压力大吗?这个问题很多人都是想知道的,因为对于互联网行业来说,大部分都是男性,尤其是技术岗位,女生做前端压力大小和能力也有很大的关系,前端技术好工作效率高,那么压力相对较低。 女…

Android 入门开发
哈哈 我已经学会Android开发了 而且还发布了两款产品 转载于:https://www.cnblogs.com/Aixieer/archive/2012/10/04/2711443.html

整理了一下Asp.net源码常见问题(完善中...),欢迎大家补充修正(最后更新于06-01)!...
以下是一些51aspx网友经常反馈的问题,特总结放在下面,本部分内容会陆续更新。同时也提醒广大网友在仔细查看源码项目对应的运行环境及每个代码中所附的文本文件《51aspx源码必读.txt》。 Q:打开51aspx上网站源码项目需要什么样的软件环境&…

谢文睿:西瓜书 + 南瓜书 吃瓜系列 1. 一元线性回归
Datawhale南瓜书是经典机器学习教材《机器学习》(西瓜书)的公式推导解析指南,旨在让在学习西瓜书的过程中,再也没有难推的公式,学好机器学习。 相关内容: 西瓜书公式推导讲解来了!0. 导学 后台…

Python培训教程分享:“高效实用” 的Python工具库
作为一名合格Python技术员,对于Python工具库的使用是少不了的,本期Python培训教程就为大家分享的是““高效实用” 的Python工具库”,希望能够帮助到大家。 Python培训教程分享:“高效实用” 的Python工具库: 1、Reque…

LNMP安装与启动脚本编写
1、安装mysql 1cd /usr/local/src/ 下载mysql: 1wget http://mirrors.sohu.com/mysql/MySQL-5.1/mysql-5.1.72-linux-x86_64-glibc23.tar.gz 解压: 1tar zxvf/usr/local/src/mysql-5.1.72-linux-x86_64-glibc23.tar.gz 更改命名: 1mv mysql-5…

Flash Builder 找不到所需的Adobe Flash Player调试器版本的解决办法
Flash Builder在Debug时出现的问题:Flash Builder 找不到所需的Adobe Flash Player调试器版本 解决方法: 1. 进入Flash Builder的安装目录 C:\Program Files\Adobe\Adobe Flash Builder 4.6\player\win\11.1 2. 安装flashplayer_11_plugin_debug.exe&…

谢文睿:西瓜书 + 南瓜书 吃瓜系列 2. 多元线性回归
Datawhale南瓜书是经典机器学习教材《机器学习》(西瓜书)的公式推导解析指南,旨在让在学习西瓜书的过程中,再也没有难推的公式,学好机器学习。 以往内容: 西瓜书公式推导讲解来了!0. 导学1. 一…

UI设计培训分享:ui设计师如何培养设计思维?
作为一名UI设计师,工作上经常会遇到思维碰撞的问题,培养自己的设计思维是大部分UI设计师都需要的,那么ui设计师如何培养设计思维呢?来看看下面的详细介绍。 UI设计培训分享:ui设计师如何培养设计思维? 一、因舍而得 正如我们看到…

[转载红鱼儿]kbmmw 开发点滴:ErrorTable用法
TkbmMWClientQuery有一个ErrorTable属性,用于记录提交Query时返回的错误结果。当用户保存修改的业务数据,出错时,可以用ErrorTable定位出错的记录并提示错误信息。 下面是实现代码: procedure TForm2.Button4Click(Sender: TObjec…

ijkplayer iOS集成
2019独角兽企业重金招聘Python工程师标准>>> http://www.jianshu.com/p/1f06b27b3ac0 如果按楼主的方式配置后还编译报错,可能的原因是,需要将环境设置成C混编环境,可以直接将AppDelegate.m 改名成AppDelegate.mm 即可 转载于:htt…

【Whalepaper】CV论文研读 - OneNet:Towards End-to-End One-Stage Object Detection
Whalepaper是由周郴莲负责的一个每周分享论文的活动。 NLP 论文分享:每周日 晚上 九点CV 论文分享: 每周日 晚上 九点Res 论文分享:每周六 晚上 九点半 欢迎对paper感兴趣的人加入我们的分享啊!!! 分享人…

软件测试培训分享:做软件测试工作如何清楚的描述一个bug
一名合格的软件测试工程师是需要清楚的交代自己的工作任务的,必须要清楚的告诉技术员出现的bug,那么做软件测试工作如何清楚的描述一个bug呢?来看看下面的详细介绍。 软件测试培训分享:做软件测试工作如何清楚的描述一个bug? 发现问题的版本…

kvm虚拟化学习笔记(十七)之KVM到KVM之v2v迁移
1.源KVM虚拟主机node1(1).查看源KVM虚拟主机上的虚拟机列表,本文计划将CentOS6.5-01虚拟机迁移到其它KVM虚拟主机中。[rootnode1 ~]# virsh list --allId Name State ----------------------------------------------------- CentOS6.5-01 …

UVA 216 Getting in Line
大意:给你一些定点,让你以代价最小的边将所有的点连起来。 思路:数据范围很小,可以通过最小生成树或者回溯来解决。 最小生成树去写时不知道哪错了,于是用回溯模拟了一遍,相当于模拟一个数组的全排列。 AC …

【青少年编程】【三级】猜数字
Scratch竞赛交流群已成立(适合6至18周岁的青少年),公众号后台回复【Scratch】,即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料(视频、代码、文档)。 猜数字…

参加web前端开发培训具体要学什么内容
学习web前端技术不是一天两天就能学会的,想要成为一名合格的web前端工程师,一定要进行系统的培训学习,那么下面小编就为大家详细的介绍一下参加web前端开发培训具体要学什么内容? 参加web前端开发培训具体要学什么内容? 一、了解web前端 we…

最长公共上升子序列 LCIS
关于子序列什么什么的问题,以前一直没怎么在意过,直到省赛突然考了一个赤裸裸的LCIS,这下才着急了,因为忘记怎么做了,而且模版也没有带。从第三名一直掉到第11名,而且超上来的,全都是会做这题的…
【组队学习】【26期】动手学数据分析
动手学数据分析 论坛版块: http://datawhale.club/c/team-learning/25-category/25 开源内容: https://github.com/datawhalechina/hands-on-data-analysis 学习目标 了解数据分析中基本库的操作(比如:pandas,numpy和matplo…

利用FFmpeg切割视频
关键词:FFmpeg,seek,ss,t,to,搜索,定位介绍如果你想要从输入文件中切割一部分,需要用到ss选项。快速定位需要将ss放在输入文件的前面(即-i的前面)ffmpeg-ss 00:03:00 -i …

哪些人适合参加软件测试培训?
想要进入互联网行业也不是一句两句那么简单的,近几年,很多人都想要学习软件测试技术,通过做软件测试岗位进入到互联网行业,那么所有人都可以学习这个技术吗?我们下面就来详细的了解一下哪些人适合参加软件测试培训? 哪些人适合参…

Linux的su命令,sudo命令和限制root远程登录
3.7 su命令: su命令是用来切换用户的,例如我要从root用户切换到user2用户: 这个 - 选项是彻底切换用户的意思,如果不加 - 选项也可以,但是切换得不彻底,例如当前的家目录还是root,环境变量也还是…

MongoDB 标准连接字符串
MongoDB 标准连接字符串mongodb://[username:password]host1[:port1][,host2[:port2],…[,hostN[:portN]]][/[database][?options]]注:并非所有MongoDB驱动都支持完整的连接字符串,不支持此格式连接字串的驱动会有替代连接方案,具体请参照驱…

谢文睿:西瓜书 + 南瓜书 吃瓜系列 3. 对数几率回归
Datawhale南瓜书是经典机器学习教材《机器学习》(西瓜书)的公式推导解析指南,旨在让在学习西瓜书的过程中,再也没有难推的公式,学好机器学习。 以往内容: 西瓜书公式推导讲解来了!0. 导学1. 一…