通过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中的字典容器
Apr 14 Python
python Django批量导入不重复数据
Mar 25 Python
python3实现爬取淘宝美食代码分享
Sep 23 Python
python使用Pandas库提升项目的运行速度过程详解
Jul 12 Python
Python Django Cookie 简单用法解析
Aug 13 Python
Python获取当前脚本文件夹(Script)的绝对路径方法代码
Aug 27 Python
python3 配置logging日志类的操作
Apr 08 Python
python判断正负数方式
Jun 03 Python
Python爬虫入门教程01之爬取豆瓣Top电影
Jan 24 Python
python pygame入门教程
Jun 01 Python
Python安装使用Scrapy框架
Apr 12 Python
PYTHON InceptionV3模型的复现详解
May 06 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
JAVA/JSP学习系列之七
2006/10/09 PHP
深入php define()函数以及defined()函数的用法详解
2013/06/05 PHP
php中的curl_multi系列函数使用例子
2014/07/29 PHP
php rsa加密解密使用详解
2015/01/14 PHP
JSON字符串传到后台PHP处理问题的解决方法
2016/06/05 PHP
PHP+Oracle本地开发环境搭建方法详解
2019/04/01 PHP
Ext JS 4官方文档之三 -- 类体系概述与实践
2012/12/16 Javascript
JavaScript中跨域调用Flash的方法
2014/08/11 Javascript
js图片闪动特效可以控制间隔时间如几分钟闪动一下
2014/08/12 Javascript
js获取当前时间显示在页面上并每秒刷新
2014/12/24 Javascript
JS中生成随机数的用法及相关函数
2016/01/09 Javascript
解决IE11 vue +webpack 项目中数据更新后页面没有刷新的问题
2018/09/25 Javascript
Node.js Buffer模块功能及常用方法实例分析
2019/01/05 Javascript
一步一步实现Vue的响应式(对象观测)
2019/09/02 Javascript
python中星号变量的几种特殊用法
2016/09/07 Python
tensorflow学习笔记之简单的神经网络训练和测试
2018/04/15 Python
Python-while 计算100以内奇数和的方法
2019/06/11 Python
Python通过TensorFLow进行线性模型训练原理与实现方法详解
2020/01/15 Python
使用python爬取抖音app视频的实例代码
2020/12/01 Python
全网最细 Python 格式化输出用法讲解(推荐)
2021/01/18 Python
Crocs卡骆驰洞洞鞋日本官方网站:Crocs日本
2016/08/25 全球购物
澳大利亚最好的电动自行车:Leon Cycle
2020/12/19 全球购物
DataReader和DataSet的异同
2014/12/31 面试题
幼师自荐信范文
2013/10/06 职场文书
中专毕业自我鉴定
2013/10/16 职场文书
蟋蟀的住宅教学反思
2014/04/26 职场文书
党员四风问题对照检查材料思想汇报
2014/09/16 职场文书
2014年后勤管理工作总结
2014/12/01 职场文书
小学班主任事迹材料
2014/12/17 职场文书
干部个人考察材料
2014/12/24 职场文书
小学中等生评语
2014/12/29 职场文书
《游戏公平》教学反思
2016/02/20 职场文书
管理者们如何制定2019年的工作计划?
2019/07/01 职场文书
关于食品安全的演讲稿范文(三篇)
2019/10/21 职场文书
html5 录制mp3音频支持采样率和比特率设置
2021/07/15 Javascript
php双向队列实例讲解
2021/11/17 PHP