通过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多线程学习资料
Dec 19 Python
python中Flask框架简单入门实例
Mar 21 Python
python基础_文件操作实现全文或单行替换的方法
Sep 04 Python
使用python判断jpeg图片的完整性实例
Jun 10 Python
Python正则表达式匹配日期与时间的方法
Jul 07 Python
解决Python3 抓取微信账单信息问题
Jul 19 Python
python3.5 cv2 获取视频特定帧生成jpg图片
Aug 28 Python
python输出数组中指定元素的所有索引示例
Dec 06 Python
Python如何使用argparse模块处理命令行参数
Dec 11 Python
Django使用list对单个或者多个字段求values值实例
Mar 31 Python
如何创建一个Flask项目并进行简单配置
Nov 18 Python
python字典按照value排序方法
Dec 28 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位运算的简单权限设计
2013/06/30 PHP
PHP jQuery表单,带验证具体实现方法
2014/02/15 PHP
php建立Ftp连接的方法
2015/03/07 PHP
php 利用array_slice函数获取随机数组或前几条数据
2015/09/30 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
2016/01/03 PHP
CodeIgniter整合Smarty的方法详解
2017/08/25 PHP
laravel实现按时间日期进行分组统计方法示例
2019/03/23 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式二图文详解
2019/04/09 PHP
javascript学习笔记(一) 在html中使用javascript
2012/06/18 Javascript
jquery 插件学习(三)
2012/08/06 Javascript
JS函数实现动态添加CSS样式表文件
2012/12/15 Javascript
js控制frameSet示例
2013/09/10 Javascript
JS循环遍历JSON数据的方法
2014/07/08 Javascript
开源的javascript项目Kissy介绍
2014/11/28 Javascript
Bootstrap导航条学习使用(二)
2017/02/08 Javascript
javascript 使用正则test( )第一次是 true,第二次是false
2017/02/22 Javascript
微信小程序 动态绑定事件并实现事件修改样式
2017/04/13 Javascript
浅谈Angular文字折叠展开组件的原理分析
2017/11/24 Javascript
微信小程序开发实现的IP地址查询功能示例
2019/03/28 Javascript
jQuery实现input[type=file]多图预览上传删除等功能
2019/08/02 jQuery
React-redux实现小案例(todolist)的过程
2019/09/29 Javascript
浅谈layui数据表格判断问题(加入表单元素),设置单元格样式
2019/10/26 Javascript
vue 使用post/get 下载导出文件操作
2020/08/07 Javascript
Python利用Beautiful Soup模块搜索内容详解
2017/03/29 Python
利用Python进行异常值分析实例代码
2017/12/07 Python
python编程实现随机生成多个椭圆实例代码
2018/01/03 Python
将python代码和注释分离的方法
2018/04/21 Python
Python实现多条件筛选目标数据功能【测试可用】
2018/06/13 Python
python爬虫之urllib,伪装,超时设置,异常处理的方法
2018/12/19 Python
Flask框架中request、请求钩子、上下文用法分析
2019/07/23 Python
CSS中垂直居中的简单实现方法
2015/07/06 HTML / CSS
护士自我评价范文
2014/01/25 职场文书
2014年乡镇植树节活动方案
2014/02/28 职场文书
财务整改报告范文
2014/11/05 职场文书
我们的节日中秋节活动总结
2015/03/23 职场文书
用CSS3画一个爱心
2021/04/27 HTML / CSS