通过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中的几种数据类型
Jan 02 Python
Python基础知识_浅谈用户交互
May 31 Python
Windows下安装Django框架的方法简明教程
Mar 28 Python
Python实现的建造者模式示例
Aug 06 Python
python的中异常处理机制
Aug 30 Python
Python json模块dumps、loads操作示例
Sep 06 Python
Python编写打字训练小程序
Sep 26 Python
Python3 Tkinkter + SQLite实现登录和注册界面
Nov 19 Python
python如何基于redis实现ip代理池
Jan 17 Python
tensorflow之自定义神经网络层实例
Feb 07 Python
Python-jenkins模块之folder相关操作介绍
May 12 Python
细说NumPy数组的四种乘法的使用
Dec 18 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
dedecms 制作模板中使用的全局标记图文教程
2007/03/11 PHP
php smarty模版引擎中的缓存应用
2009/12/11 PHP
php+iframe实现隐藏无刷新上传文件
2012/02/10 PHP
PHP5中Cookie与 Session使用详解
2013/04/30 PHP
PH P5.2至5.5、5.6的新增功能详解
2014/07/14 PHP
Yii2中SqlDataProvider用法示例
2016/09/22 PHP
php 防止表单重复提交两种实现方法
2016/11/03 PHP
PHP 爬取网页的主要方法
2018/07/13 PHP
javascript实现的鼠标链接提示效果生成器代码
2007/06/28 Javascript
javascript div 遮罩层封锁整个页面
2009/07/10 Javascript
自己的js工具 Cookie 封装
2009/08/21 Javascript
imgAreaSelect 中文文档帮助说明
2011/10/08 Javascript
ajax的hide隐藏问题解决方法
2012/12/11 Javascript
Asp.Net alert弹出提示信息的几种方法总结
2014/01/29 Javascript
js单词形式的运算符
2014/05/06 Javascript
jQuery选择器源码解读(三):tokenize方法
2015/03/31 Javascript
微信小程序  modal弹框组件详解
2016/10/27 Javascript
微信小程序 wxapp内容组件 progress详细介绍
2016/10/31 Javascript
nodejs前端模板引擎swig入门详解
2018/05/15 NodeJs
Vuex 快速入门(简单易懂)
2018/09/20 Javascript
如何在项目中使用log4.js的方法步骤
2019/07/16 Javascript
茶余饭后聊聊Vue3.0响应式数据那些事儿
2019/10/30 Javascript
uniapp微信小程序实现一个页面多个倒计时
2020/11/01 Javascript
cProfile Python性能分析工具使用详解
2019/07/22 Python
Python PyInstaller安装和使用教程详解
2020/01/08 Python
Django基于客户端下载文件实现方法
2020/04/21 Python
解决python3.6用cx_Oracle库连接Oracle的问题
2020/12/07 Python
英国舒适型鞋履品牌:FitFlop
2017/05/17 全球购物
加拿大时尚潮流大码女装购物网站:Addition Elle
2018/04/02 全球购物
几个常见的消息中间件(MOM)
2014/01/08 面试题
个人实用简单的自我评价
2013/10/19 职场文书
集体备课反思
2014/02/12 职场文书
安全生产一岗双责责任书
2014/07/28 职场文书
小学生读书笔记
2015/07/01 职场文书
《卧薪尝胆》读后感3篇
2019/12/26 职场文书
Python的flask接收前台的ajax的post数据和get数据的方法
2021/04/12 Python