pyqt远程批量执行Linux命令程序的方法


Posted in Python onFebruary 14, 2019

写了个小程序:

功能

1.测试远程ssh连接是否成功,

2.批量执行远程ssh命令

效果如下:

pyqt远程批量执行Linux命令程序的方法

代码如下:

#-*- coding:utf-8 -*-
import sys
from PyQt4 import QtCore, QtGui, uic
import locale
import re
import os
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import paramiko
qtCreatorFile = "test.ui" # Enter file here.
 
Ui_MainWindow, QtBaseClass = uic.loadUiType(qtCreatorFile)
a = 0
username_list = []
ip_list = []
password_list = []
class MyApp(QtGui.QMainWindow, Ui_MainWindow):
  def __init__(self):
    QtGui.QMainWindow.__init__(self)
    Ui_MainWindow.__init__(self)
    self.setupUi(self)
    self.add.clicked.connect(self.add_info)
    self.test.clicked.connect(self.test_link)
    self.do_2.clicked.connect(self.do_command)
  def add_info(self):
    global a
    ip = self.ip.text()
    ip_list.append(ip)
    username = self.username.text()
    username_list.append(username)
    password = self.password.text()
    password_list.append(password)
    self.table.setHorizontalHeaderLabels(['ip','username','password'])
    newItem = QTableWidgetItem(ip) 
    self.table.setItem(a, 0, newItem)
     
    newItem = QTableWidgetItem(username) 
    self.table.setItem(a, 1, newItem) 
     
    newItem = QTableWidgetItem(password) 
    self.table.setItem(a, 2, newItem)
    a += 1
  def test_link(self):
    ip = str(self.ip.text())
    username = str(self.username.text())
    password = str(self.password.text())
    try:
      ssh = paramiko.SSHClient()
      ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
      ssh.connect(ip, 22, username, password)
      stdin, stdout, stderr = ssh.exec_command("who")
      print stdout.read()
      search = re.search(stdout.read(), username)
      if search:
        info = u"连接成功"
      else:
        info = u"连接失败"
    except:
      info = u"连接失败"
    print info
    self.state.setText(info)
    ssh.close()
 
  def do_command(self):
    command = str(self.command.text())
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    for i in range(len(ip_list)):
      ip = str(ip_list[i])
      username = str(username_list[i])
      password = str(password_list[i])
      ssh.connect(ip, 22, username, password)
      stdin, stdout, stderr = ssh.exec_command(command)
      info = stdout.read()
      self.result.append(info)
 
    ssh.close()
 
 
 
 
if __name__ == "__main__":
  app = QtGui.QApplication(sys.argv)
  mycode = locale.getpreferredencoding()
  code = QTextCodec.codecForName(mycode)
  QTextCodec.setCodecForLocale(code)
  QTextCodec.setCodecForTr(code)
  QTextCodec.setCodecForCStrings(code)
  window = MyApp()
  window.show()
  sys.exit(app.exec_())

以上这篇pyqt远程批量执行Linux命令程序的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
kNN算法python实现和简单数字识别的方法
Nov 18 Python
Python使用py2exe打包程序介绍
Nov 20 Python
Python编程之字符串模板(Template)用法实例分析
Jul 22 Python
python PyTorch预训练示例
Feb 11 Python
python pandas 组内排序、单组排序、标号的实例
Apr 12 Python
python xlsxwriter创建excel图表的方法
Jun 11 Python
Python文件循环写入行时防止覆盖的解决方法
Nov 09 Python
python实现爱奇艺登陆密码RSA加密的方法示例详解
May 27 Python
tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this T
Jun 22 Python
Python中pass的作用与使用教程
Nov 13 Python
python模拟点击玩游戏的实例讲解
Nov 26 Python
python创建字典及相关管理操作
Apr 13 Python
情人节快乐! python绘制漂亮玫瑰
Aug 18 #Python
python实现全盘扫描搜索功能的方法
Feb 14 #Python
使用python的pexpect模块,实现远程免密登录的示例
Feb 14 #Python
centos6.5安装python3.7.1之后无法使用pip的解决方案
Feb 14 #Python
Python模拟百度自动输入搜索功能的实例
Feb 14 #Python
python 处理telnet返回的More,以及get想要的那个参数方法
Feb 14 #Python
python 多个参数不为空校验方法
Feb 14 #Python
You might like
十天学会php之第六天
2006/10/09 PHP
php adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
PHP中strtotime函数使用方法详解
2011/11/27 PHP
JQUERY 浏览器判断实现函数
2009/08/20 Javascript
JavaScript 基于原型的对象(创建、调用)
2009/10/16 Javascript
CSS和Javascript简单复习资料
2010/06/29 Javascript
jQuery的Ajax的自动完成功能控件简要说明
2013/02/22 Javascript
jquery显示和隐藏div特效实例
2013/02/27 Javascript
JavaScript 验证码的实例代码(附效果图)
2013/03/22 Javascript
在JavaScript的AngularJS库中进行单元测试的方法
2015/06/23 Javascript
js判断浏览器类型及设备(移动页面开发)
2015/07/30 Javascript
AngularJS使用ng-Cloak阻止初始化闪烁问题的方法
2016/11/03 Javascript
vue基于Element构建自定义树的示例代码
2017/09/19 Javascript
基于ajax和jsonp的原生封装(实例)
2017/10/16 Javascript
JavaScript实现微信红包算法及问题解决方法
2018/04/26 Javascript
vue中锚点的三种方法
2018/07/06 Javascript
基于vue-cli3+typescript的tsx开发模板搭建过程分享
2020/02/28 Javascript
Python爬虫框架Scrapy安装使用步骤
2014/04/01 Python
在Python中使用sort()方法进行排序的简单教程
2015/05/21 Python
Python基于QRCode实现生成二维码的方法【下载,安装,调用等】
2017/07/11 Python
python 常用的基础函数
2018/07/10 Python
Python3 jupyter notebook 服务器搭建过程
2018/11/30 Python
python儿童学游戏编程知识点总结
2019/06/03 Python
python 实现按对象传值
2019/12/26 Python
解决TensorFlow模型恢复报错的问题
2020/02/06 Python
德国骆驼商店:ActiveFashionWorld
2017/11/18 全球购物
MYSQL相比于其他数据库有哪些特点
2013/07/19 面试题
心理健康课教学反思
2014/02/13 职场文书
学生周末长期请假条
2014/02/15 职场文书
《浅水洼里的小鱼》听课反思
2014/02/28 职场文书
清明节扫墓活动方案
2014/03/02 职场文书
幼儿园教师师德师风演讲稿:爱我所爱 无悔青春
2014/09/10 职场文书
基层干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
逃课打麻将检讨书
2014/10/05 职场文书
品质保证书格式
2015/02/28 职场文书
Html5同时支持多端sdk的小技巧
2021/11/17 HTML / CSS