通过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多重继承实例
Oct 11 Python
Python的Bottle框架的一些使用技巧介绍
Apr 08 Python
python简单实现计算过期时间的方法
Jun 09 Python
pygame 精灵的行走及二段跳的实现方法(必看篇)
Jul 10 Python
CentOS中升级Python版本的方法详解
Jul 10 Python
python操作mysql代码总结
Jun 01 Python
python 解压pkl文件的方法
Oct 25 Python
解决pycharm回车之后不能换行或不能缩进的问题
Jan 16 Python
Django实现发送邮件找回密码功能
Aug 12 Python
8段用于数据清洗Python代码(小结)
Oct 31 Python
Python 实现打印单词的菱形字符图案
Apr 12 Python
Python如何使用ElementTree解析xml
Oct 12 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 巧用数组降低程序的时间复杂度
2010/01/01 PHP
php设计模式 Factory(工厂模式)
2011/06/26 PHP
PHP加密解密字符串汇总
2015/04/26 PHP
PHP数学运算与数据处理实例分析
2016/04/01 PHP
传智播客学习之java 反射
2009/11/22 Javascript
jquery根据锚点offset值实现动画切换
2014/09/11 Javascript
jquery+ajax实现跨域请求的方法
2015/01/20 Javascript
AngularJS入门教程之ng-checked 指令详解
2016/08/01 Javascript
JavaScript代码里的判断小结
2016/08/22 Javascript
Angularjs 实现一个幻灯片示例代码
2016/09/08 Javascript
nodejs入门教程二:创建一个简单应用示例
2017/04/24 NodeJs
详解webpack+es6+angular1.x项目构建
2017/05/02 Javascript
ExtJs整合Echarts的示例代码
2018/02/27 Javascript
Python常用小技巧总结
2015/06/01 Python
Python中死锁的形成示例及死锁情况的防止
2016/06/14 Python
Python编程中对super函数的正确理解和用法解析
2016/07/02 Python
Django+Ajax+jQuery实现网页动态更新的实例
2018/05/28 Python
Python面向对象程序设计类的封装与继承用法示例
2019/04/12 Python
pytorch之ImageFolder使用详解
2020/01/06 Python
python3连接MySQL8.0的两种方式
2020/02/17 Python
python实现梯度下降和逻辑回归
2020/03/24 Python
Python xlrd模块导入过程及常用操作
2020/06/10 Python
python读取图像矩阵文件并转换为向量实例
2020/06/18 Python
Python如何优雅删除字符列表空字符及None元素
2020/06/25 Python
python实现从ftp上下载文件的实例方法
2020/07/19 Python
HTML5 在canvas中绘制矩形附效果图
2014/06/23 HTML / CSS
Schutz鞋官方网站:Schutz Shoes
2017/12/13 全球购物
意大利时尚奢侈品店:D’Aniello Boutique
2021/01/19 全球购物
室内设计自我鉴定
2013/10/15 职场文书
学习心得体会
2014/01/01 职场文书
马云北大演讲完整版:真心话,什么才是阿里的核心竞争力?
2014/04/04 职场文书
意向书范本
2014/07/29 职场文书
56句经典英文座右铭
2019/08/09 职场文书
小学生六年级作文之关于感恩
2019/08/16 职场文书
Python import模块的缓存问题解决方案
2021/06/02 Python
tomcat的catalina.out日志按自定义时间格式进行分割的操作方法
2022/04/02 Servers