通过python连接Linux命令行代码实例


Posted in Python onFebruary 18, 2020

这篇文章主要介绍了通过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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中执行shell命令的几个方法小结
Sep 18 Python
Python设置Socket代理及实现远程摄像头控制的例子
Nov 13 Python
Python的组合模式与责任链模式编程示例
Feb 02 Python
python爬虫基本知识
Mar 05 Python
Django 实现下载文件功能的示例
Mar 06 Python
python 遍历目录(包括子目录)下所有文件的实例
Jul 11 Python
在IPython中进行Python程序执行时间的测量方法
Nov 01 Python
Python读取excel指定列生成指定sql脚本的方法
Nov 28 Python
Django用户认证系统 User对象解析
Aug 02 Python
python 多进程队列数据处理详解
Dec 23 Python
pytorch之inception_v3的实现案例
Jan 06 Python
Python Numpy,mask图像的生成详解
Feb 19 Python
Python日志syslog使用原理详解
Feb 18 #Python
Pytorch中.new()的作用详解
Feb 18 #Python
Pytorch maxpool的ceil_mode用法
Feb 18 #Python
浅谈pytorch池化maxpool2D注意事项
Feb 18 #Python
Python3的socket使用方法详解
Feb 18 #Python
Python批量启动多线程代码实例
Feb 18 #Python
基于pytorch padding=SAME的解决方式
Feb 18 #Python
You might like
删除无限级目录与文件代码共享
2006/07/12 PHP
PHP使用mysql_fetch_row查询获得数据行列表的方法
2015/03/18 PHP
PHP内核探索之解释器的执行过程
2015/12/22 PHP
PHP开发实现微信退款功能示例
2017/11/25 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
Javascript中的数学函数集合
2007/05/08 Javascript
js中各浏览器中鼠标按键值的差异
2011/04/07 Javascript
JavaScript自定义事件介绍
2013/08/29 Javascript
Javascript学习笔记之 函数篇(一) : 函数声明和函数表达式
2014/06/24 Javascript
javascript ajax的5种状态介绍
2014/08/18 Javascript
jQuery实现移动 和 渐变特效的点击事件
2015/02/26 Javascript
js实现的倒计时按钮实例
2015/06/24 Javascript
Bootstrap入门书籍之(零)Bootstrap简介
2016/02/17 Javascript
jQuery实现只允许输入数字和小数点的方法
2016/03/02 Javascript
JS动态加载脚本并执行回调操作
2016/08/24 Javascript
Vue组件中slot的用法
2018/01/30 Javascript
Vue动态获取width的方法
2018/08/22 Javascript
python计算最小优先级队列代码分享
2013/12/18 Python
python3使用tkinter实现ui界面简单实例
2014/01/10 Python
Django contenttypes 框架详解(小结)
2018/08/13 Python
使用Template格式化Python字符串的方法
2019/01/22 Python
深入了解和应用Python 装饰器 @decorator
2019/04/02 Python
win10环境下配置vscode python开发环境的教程详解
2019/10/16 Python
如何在python中实现随机选择
2019/11/02 Python
Python函数参数类型及排序原理总结
2019/12/19 Python
PyQT5 实现快捷键复制表格数据的方法示例
2020/06/19 Python
瑞贝卡·泰勒官方网站:Rebecca Taylor
2016/09/24 全球购物
美国女性卫生用品公司:Thinx
2017/06/30 全球购物
英国现代、当代和设计师家具店:Furntastic
2020/07/18 全球购物
超市仓管员岗位职责
2014/04/07 职场文书
艺术教育实施方案
2014/05/03 职场文书
责任心演讲稿
2014/05/14 职场文书
医院节能减排方案
2014/06/13 职场文书
八荣八耻演讲稿
2014/09/15 职场文书
浅析Python中的套接字编程
2021/06/22 Python
Java elasticsearch安装以及部署教程
2021/06/28 Java/Android