通过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常见数据结构详解
Jul 24 Python
python中os和sys模块的区别与常用方法总结
Nov 14 Python
Django实现一对多表模型的跨表查询方法
Dec 18 Python
Python 实现两个服务器之间文件的上传方法
Feb 13 Python
django框架面向对象ORM模型继承用法实例分析
Jul 29 Python
Python实现微信翻译机器人的方法
Aug 13 Python
使用TensorFlow搭建一个全连接神经网络教程
Feb 06 Python
在tensorflow中设置使用某一块GPU、多GPU、CPU的操作
Feb 07 Python
python缩进长度是否统一
Aug 02 Python
如何快速理解python的垃圾回收机制
Sep 01 Python
用Python进行websocket接口测试
Oct 16 Python
Python使用scapy模块发包收包
May 07 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
php统计文件大小,以GB、MB、KB、B输出
2011/05/29 PHP
探讨如何把session存入数据库
2013/06/07 PHP
PHP中Session可能会引起并发问题
2015/06/26 PHP
PHP+redis实现添加处理投票的方法
2015/11/14 PHP
基于laravel制作APP接口(API)
2016/03/15 PHP
php下载远程大文件(获取远程文件大小)的实例
2017/06/17 PHP
一个实用的php验证码类
2017/07/06 PHP
php封装的page分页类完整实例代码
2020/02/01 PHP
js可突破windows弹退效果代码
2008/08/09 Javascript
js textarea自动增高并隐藏滚动条
2009/12/16 Javascript
jquery.pagination.js 无刷新分页实现步骤分享
2012/05/23 Javascript
JS 模态对话框和非模态对话框操作技巧汇总
2013/04/15 Javascript
javascript模拟实现C# String.format函数功能代码
2013/11/25 Javascript
详解AngularJS中的表达式使用
2015/06/16 Javascript
Window.Open打开窗体和if嵌套代码
2016/04/15 Javascript
js编写三级联动简单案例
2016/12/21 Javascript
Vue单页面应用保证F5强刷不清空数据的解决方案
2018/01/31 Javascript
JS实现星星海特效
2019/12/24 Javascript
windows下wxPython开发环境安装与配置方法
2014/06/28 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
2019/07/04 Python
Python接口自动化判断元素原理解析
2020/02/24 Python
使用AJAX和Django获取数据的方法实例
2020/10/25 Python
CSS3中的opacity属性使用教程
2015/08/19 HTML / CSS
uniapp+Html5端实现PC端适配
2020/07/15 HTML / CSS
美国著名的婴儿学步鞋老品牌:Robeez
2016/08/20 全球购物
介绍java中初始化块的使用
2012/09/11 面试题
采购内勤岗位职责
2013/12/10 职场文书
原料仓仓管员岗位职责
2014/07/08 职场文书
小学生一分钟演讲稿
2014/08/26 职场文书
手术室护士节演讲稿
2014/08/27 职场文书
2014年小学教学工作总结
2014/11/13 职场文书
世界地球日活动总结
2015/02/09 职场文书
初中教师个人总结
2015/02/10 职场文书
2015年大学社团工作总结
2015/04/09 职场文书
2015年房地产个人工作总结
2015/05/26 职场文书
postgresql使用filter进行多维度聚合的解决方法
2021/07/16 PostgreSQL