通过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中循环语句while用法实例
May 16 Python
Python数据类型详解(二)列表
May 08 Python
Eclipse和PyDev搭建完美Python开发环境教程(Windows篇)
Nov 16 Python
Python基于pyCUDA实现GPU加速并行计算功能入门教程
Jun 19 Python
python try except 捕获所有异常的实例
Oct 18 Python
Python地图绘制实操详解
Mar 04 Python
Python实现串口通信(pyserial)过程解析
Sep 25 Python
Python第三方库的几种安装方式(小结)
Apr 03 Python
Ubuntu18.04安装 PyCharm并使用 Anaconda 管理的Python环境
Apr 08 Python
python获得命令行输入的参数的两种方式
Nov 02 Python
python中delattr删除对象方法的代码分析
Dec 15 Python
python字典进行运算原理及实例分享
Aug 02 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
ThinkPHP中实例Model方法的区别说明
2010/08/21 PHP
php 冒泡排序 交换排序法
2011/05/10 PHP
定义php常量的详解
2013/06/09 PHP
php中time()与$_SERVER[REQUEST_TIME]用法区别
2014/11/19 PHP
利用PHP判断文件是否为图片的方法总结
2017/01/06 PHP
PHP 获取指定地区的天气实例代码
2017/02/08 PHP
PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例
2019/05/30 PHP
JQueryEasyUI datagrid框架的进阶使用
2013/04/08 Javascript
JavaScript实现复制功能各浏览器支持情况实测
2013/07/18 Javascript
在js中做数字字符串补0(js补零)
2017/03/25 Javascript
用vue构建多页面应用的示例代码
2017/09/20 Javascript
shiro授权的实现原理
2017/09/21 Javascript
element-ui 时间选择器限制范围的实现(随动)
2019/01/09 Javascript
微信小程序时间标签和时间范围的联动效果
2019/02/15 Javascript
浅析Python中的赋值和深浅拷贝
2017/08/15 Python
Python+Turtle动态绘制一棵树实例分享
2018/01/16 Python
如何在django里上传csv文件并进行入库处理的方法
2019/01/02 Python
对python中Librosa的mfcc步骤详解
2019/01/09 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
2019/02/13 Python
详解用python写网络爬虫-爬取新浪微博评论
2019/05/10 Python
解决python中用matplotlib画多幅图时出现图形部分重叠的问题
2019/07/07 Python
PyCharm2019安装教程及其使用(图文教程)
2019/09/29 Python
Python笔记之facade模式
2019/11/20 Python
浅谈对pytroch中torch.autograd.backward的思考
2019/12/27 Python
网络公司美工设计工作个人的自我评价
2013/11/03 职场文书
20岁生日感言
2014/01/13 职场文书
幼儿园庆六一活动方案
2014/03/06 职场文书
协议书范本
2014/04/23 职场文书
幼儿园感恩节活动方案2014
2014/10/11 职场文书
房产协议书范本
2014/10/18 职场文书
2014年医院个人工作总结
2014/12/09 职场文书
教师年度考核自我评鉴
2015/08/11 职场文书
2016五一手机促销广告语
2016/01/28 职场文书
聊一聊python常用的编程模块
2021/05/14 Python
学会Python数据可视化必须尝试这7个库
2021/06/16 Python
MySQL生成千万测试数据以及遇到的问题
2022/08/05 MySQL