通过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获取GY-85九轴模块信息示例
Dec 05 Python
python基础教程之序列详解
Aug 29 Python
Python深入学习之对象的属性
Aug 31 Python
Python操作MongoDB数据库PyMongo库使用方法
Apr 27 Python
Python基础教程之if判断,while循环,循环嵌套
Apr 25 Python
python matplotlib库绘制条形图练习题
Aug 10 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
Oct 25 Python
pytorch程序异常后删除占用的显存操作
Jan 13 Python
使用python绘制cdf的多种实现方法
Feb 25 Python
Python爬虫逆向分析某云音乐加密参数的实例分析
Dec 04 Python
python3 hdf5文件 遍历代码
May 19 Python
opencv 分类白天与夜景视频的方法
Jun 05 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/05/26 PHP
php导出csv文件,可导出前导0实例代码
2016/11/16 PHP
Centos7.7 64位利用本地完整安装包安装lnmp/lamp套件教程
2021/03/09 Servers
精选的10款用于构建良好易用性网站的jQuery插件
2011/01/23 Javascript
javascript中的return和闭包函数浅析
2014/06/06 Javascript
jquery中each方法示例和常用选择器
2014/07/08 Javascript
jQuery+css实现百度百科的页面导航效果
2014/12/16 Javascript
Prototype框架详解
2015/11/25 Javascript
利用CSS3在Angular中实现动画
2016/01/15 Javascript
Google 地图获取API Key详细教程
2016/08/06 Javascript
AngularJS入门教程之路由与多视图详解
2016/08/19 Javascript
js图片切换具体实现代码
2016/10/13 Javascript
详解js中Number()、parseInt()和parseFloat()的区别
2016/12/20 Javascript
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
2017/08/17 jQuery
vue.js默认路由不加载linkActiveClass问题的解决方法
2017/12/11 Javascript
JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍
2018/03/01 Javascript
vue使用better-scroll实现下拉刷新、上拉加载
2018/11/23 Javascript
Vue之beforeEach非登录不能访问的实现(代码亲测)
2019/07/18 Javascript
使用vuex存储用户信息到localStorage的实例
2019/11/11 Javascript
[53:50]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
[59:35]DOTA2-DPC中国联赛定级赛 Aster vs DLG BO3第一场 1月8日
2021/03/11 DOTA
Python中类的定义、继承及使用对象实例详解
2015/04/30 Python
python中异常报错处理方法汇总
2016/11/20 Python
Python中装饰器兼容加括号和不加括号的写法详解
2017/07/05 Python
Windows下python3.6.4安装教程
2018/07/31 Python
python计算两个矩形框重合百分比的实例
2018/11/07 Python
Python线程之定位与销毁的实现
2019/02/17 Python
Python银行系统实战源码
2019/10/25 Python
Python实现变声器功能(萝莉音御姐音)
2019/12/05 Python
python飞机大战 pygame游戏创建快速入门详解
2019/12/17 Python
CSS3 边框效果
2019/11/04 HTML / CSS
美国眼镜网:GlassesUSA
2017/09/07 全球购物
教师年终个人自我评价
2013/10/04 职场文书
综合办公室岗位职责
2015/04/11 职场文书
Navicat连接MySQL错误描述分析
2021/06/02 MySQL
使用Springboot实现健身房管理系统
2021/07/01 Java/Android