通过python连接Linux命令行代码实例
作者:TTyb 发布时间:2023-01-25 23:10:33
标签:python,连接,Linux
这篇文章主要介绍了通过python连接Linux命令行代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
代码如下
#!/usr/bin/python
# -*- coding: utf-8 -*-
'''https://www.ibm.com/developerworks/cn/linux/l-cn-pexpect2/index.html'''
import pexpect
import types
username = "root"
ip = "192.168.***.***"
password = "****"
pex = pexpect.spawn('ssh %s@%s' % (username, ip))
def _check(pattern, timeout=120):
i = pex.expect(pattern, timeout=timeout)
return i
def sendcr(cmd):
if pex == None:
return 0
n = pex.send("%s\r" % cmd)
return n
def getexec(cmd):
child = pexpect.spawn(cmd)
child.expect(pexpect.EOF)
return child.before
if __name__ == '__main__':
checklist1 = [["(?i)Connection refused", False],
["(?i)Host key verification failed.", False],
["(?i)VENUSTECH AUDIT SYSTEM MA1000", True],
# ["(?i)#\[/]",True], # hpux
["(?i).+>", True], # windows
[".+[>$#]\s*$", True], # debian
["(?i)Last login", True],
["(?i)access denied", False],
["(?i)NT_STATUS_LOGON_FAILURE", False],
["(?i)are you sure you want to continue connecting", "yes"],
["(?i)authentication fail(?!ure)", False],
["(?i)connection closed by remote host", False],
["(?i)login failed", False],
["(?i)login incorrect", False],
["(?i)need to be root", False],
["(?i)no route to host", False],
["(?i)not found", False],
["(?i)Bad secrets", False],
["(?i)incorrect password", False],
["(?i)permission denied", False],
# ["(?i)terminal type",terminal_type],
["This private key will be ignored.", False],
["(?i)no route to host", False],
["(?i)press 'Enter' key to proceed", "\r"],
["(?i)Y/N", 'Y'],
[pexpect.EOF, False],
[pexpect.TIMEOUT, False],
["(?i)Enter passphrase for key .*:", password],
["(?i)assword", password],
["(?i)passwd", password],
["(?i)sername", username],
["(?i)(?<!sful )login", username],
["(?i)----------------------------------------------------------------", True]]
checklist2 = [i[0] for i in checklist1]
while True:
i = _check(checklist2)
print i, checklist1[i], checklist1[i][1]
if (type(checklist1[i][1]) is types.BooleanType):
if type(checklist1[i][1]):
break
else:
sendcr(checklist1[i][1])
cmd = "ls -l /etc/rsyslog.conf"
result = getexec(cmd)
print "result", result
打印结果:
26 ['(?i)assword', '***'] ***
5 ['(?i)Last login', True] True
result -rw-r--r--. 1 root root 3167 Mar 13 11:24 /etc/rsyslog.conf
来源:https://www.cnblogs.com/TTyb/p/6595472.html


猜你喜欢
- 导入注意点:使用phpmyadmin或navicat之类的工具的导入功能还是会相当慢,可以直接使用mysql进行导入导入命令如下:mysql
- 什么是运算符重载让自定义的类生成的对象(实例)能够使用运算符进行操作作用:让自定义的实例像内建对象一样进行运算符操作让程序简洁易读对自定义对
- 在http规则中用404来表示某个页面不能访问,一般来说,网站的404错误页面都是IIS或APACHE默认的页面,千篇一律,非常单调。由于可
- 我使用Pytorch进行模型训练时发现真正模型本身对于显存的占用并不明显,但是对应的转换为tensorflow后(权重也进行了转换),发现P
- 本文实例讲述了Python基于xlrd模块操作Excel的方法。分享给大家供大家参考,具体如下:一、使用xlrd读取excel1、xlrd的
- 原理 QueryCache(下面简称QC)是根据SQL语句来cache的。一个SQL查询如果以select开头,那么MySQL服务器将尝试对
- 本文实例讲述了Python实现绘制双柱状图并显示数值功能。分享给大家供大家参考,具体如下:# -*- coding:utf-8 -*-#!
- 最近经常使用字符串查找功能。 包括 1、全匹配查找字符串 2、模糊查找字符串 CHARINDEX 和 PATINDEX 函数都返回指定模式的
- 在python中,可以把for循环写在一行,生成一个新的列表,使用起来非常方便,下面举几个简单例子体会一下。1.简单的for...[if].
- html的标签的属性,比如id、class、href需要动态传递参数,拼接字符串,查了一些资料,并没有找到合适的解决方法,琢磨了一上午,终于
- 今天照着样例搞了下tensorboard,发现自己无法显示scalar,而graph却可以正常显示。出现这种情况就说明,tensorfboa
- 前言:不知道有多少同学跟我一样,最初接触编程的动机就是为了自己做个游戏玩?今天要给大家分享的是一个 pygame 写的“
- 以下为测试例子。 1.首先创建两张临时表并录入测试数据: 代码如下:create table #temptest1 ( id i
- 本文为大家分享了Navicat for SQLite导入csv中文数据的具体方法,供大家参考,具体内容如下1.用Notepad++打开csv
- 一、pyc文件我们开发一个python脚本,文件的后缀为.py。如果运行这个py文件,Python内部会先将源码文件(.py文件)编译成字节
- 什么是MySQL多实例简单地说,Mysql多实例就是在一台服务器上同时开启多个不同的服务端口(3306、3307),同时运行多个Mysql服
- 1、背景由于办公需要“每天定时推送某消息用来提醒群里面所有人”,于是决定用企业微信自带的机器人来实现此功能。具体方法我来一一讲述。2、企业微
- 地理图表什么是地理图表?地理图表有什么作用?地理图表主要应用在那些领域?其实这些问题看看下面的实例图形就已不攻自破了,地理图表一看首先就是地
- 本文实例为大家分享了python实现KFC点餐收银系统的具体代码,供大家参考,具体内容如下这个kfc收银系统我实现了的以下功能:1.正常餐品
- 概念所有Python的对象都是扩展的PyObject,python的垃圾回收机制是计算引用,这个对象中定义了py_ssize就是用来做这个事