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 相关文章推荐
Python中3种内建数据结构:列表、元组和字典
Nov 30 Python
Python开发之快速搭建自动回复微信公众号功能
Apr 22 Python
通过Python实现自动填写调查问卷
Sep 06 Python
Python使用LDAP做用户认证的方法
Jun 20 Python
python flask框架实现重定向功能示例
Jul 02 Python
导入tensorflow时报错:cannot import name 'abs'的解决
Oct 10 Python
python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例
Feb 28 Python
Python+appium框架原生代码实现App自动化测试详解
Mar 06 Python
python 绘制国旗的示例
Sep 27 Python
matplotlib之pyplot模块实现添加子图subplot的使用
Apr 25 Python
python 实现体质指数BMI计算
May 26 Python
Python数据类型最全知识总结
May 31 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中使用Oracle数据库(2)
2006/10/09 PHP
PHP下编码转换函数mb_convert_encoding与iconv的使用说明
2009/12/16 PHP
php 使用curl模拟ip和来源进行访问的实现方法
2017/05/02 PHP
php模仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(中)
2017/06/11 PHP
解决laravel上传图片之后,目录有图片,但是访问不到(404)的问题
2019/10/14 PHP
使用jquery动态加载javascript以减少服务器压力
2012/10/29 Javascript
JS控制文本框textarea输入字数限制的方法
2013/06/17 Javascript
struts2+jquery+json实现异步加载数据(自写)
2013/06/24 Javascript
javascript设计模式之工厂模式示例讲解
2014/03/04 Javascript
同一个网页中实现多个JavaScript特效的方法
2015/02/02 Javascript
Jquery Easyui菜单组件Menu使用详解(15)
2016/12/18 Javascript
javascript DOM的详解及实例代码
2017/03/06 Javascript
ionic2自定义cordova插件开发以及使用(Android)
2017/06/19 Javascript
深入理解Vue nextTick 机制
2018/04/28 Javascript
Vue 利用指令实现禁止反复发送请求的两种方法
2019/09/15 Javascript
vue 实现锚点功能操作
2020/08/10 Javascript
react-native 实现购物车滑动删除效果的示例代码
2021/01/15 Javascript
js中实现继承的五种方法
2021/01/25 Javascript
[06:43]2018DOTA2国际邀请赛寻真——VGJ.Thunder
2018/08/11 DOTA
Python实现的数据结构与算法之双端队列详解
2015/04/22 Python
python实现批量下载新浪博客的方法
2015/06/15 Python
Python常用的爬虫技巧总结
2016/03/28 Python
Python3网络爬虫中的requests高级用法详解
2019/06/18 Python
Python实现EXCEL表格的排序功能示例
2019/06/25 Python
Django框架HttpRequest对象用法实例分析
2019/11/01 Python
用python中的matplotlib绘制方程图像代码
2019/11/21 Python
使用matlab 判断两个矩阵是否相等的实例
2020/05/11 Python
Python如何优雅删除字符列表空字符及None元素
2020/06/25 Python
SIMON MILLER官网:洛杉矶的生活方式品牌
2020/10/19 全球购物
优秀教师先进事迹材料
2014/12/15 职场文书
学生乘坐校车安全责任书
2015/05/11 职场文书
2016年党员承诺书范文
2016/03/24 职场文书
如何写好闭幕词
2019/04/02 职场文书
Nginx内网单机反向代理的实现
2021/11/07 Servers
Java基础——Map集合
2022/04/01 Java/Android
Android Canvas绘制文字横纵向对齐
2022/06/05 Java/Android