python运维脚本交换机更改密码_Python 远程批量修改密码脚本
(一)注:pexpect模块需安装#!/usr/bin/env python#coding:utf8import pexpectimport sysiplist = ['192.168.140.142','192.168.140.145'] ##定义主机列表oldpasswd = '234567' ##旧密码newpasswd = '1234567' ##新密码while iplist:ip =
(一)注: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.pop() ## 获取一个ip
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自动化运维》
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)