Python之命令行交互模块

模块:pexpect

简介:可以实现命令行内自动捕捉关键字,自动输入内容并执行

#实现交互pexpect模块
#先要安装软件包pexpect
#-*-coding:utf-8 -*-
#实现远程登录
def ssh():
    import pexpect,sys
    child = pexpect.spawn("/usr/bin/sh -c 'ssh -p 22 root@192.168.3.2'")		#定义一个对象
    child.expect("yes/no")				#捕捉该对象出现的关键词
    logfile = open('log.txt','wb')			#生成一个日志文件
    child.logfile = logfile				#将输出内容保存到logfile对象文件
    index = child.expect(['yes/no','password'])				#定义多个输出
    if index == 0:					#如果输出为“'yes/no'”时执行如下语句
    	child.sendline("yes")					#如果捕捉到的话输入“yes”
    	child.expect("password:")				#捕捉是否有关键词“password:”			
    	child.sendline("jia1314")				#捕捉到后输入
    elif index == 1:							#如果输出为“'password'”时执行如下语句
    	child.sendline("jia1314")
    child.expect("#")						#捕捉终端提示符“#”
    child.sendline("who")
    child.expect("#")
    logfile.close()
#ssh()
#实现长时间连接操作
def long_ssh():
	import pexpect.pxssh
	import getpass
	try:
		s = pexpect.pxssh.pxssh()				#创建pxssh对象
		hostname = '192.168.3.2'					#定义主机
		username = 'root'					#定义用户
		password = 'jiakb'			#定义密码
		s.login(hostname,username,password)				#登录服务器
		s.sendline('uptime')			#执行命令
		s.prompt()					#匹配命令提示符,多条命令时每次都要加这一条
		s.sendline('who')				#执行多次命令
		print("----------loginout---------")	#中间可以插入一些自定义东西
		s.logout()			#退出登录
	except pxssh.ExceptionPxssh as e:		#捕捉登录错误
		print("pxssh faild on login")
		print(str(e))
#long_ssh()

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值