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抓取网页时字符集转换问题处理方案分享
Jun 19 Python
详解Python中的join()函数的用法
Apr 07 Python
学习python 之编写简单乘法运算题
Feb 27 Python
使用py2exe在Windows下将Python程序转为exe文件
Mar 04 Python
深入解析Python中函数的参数与作用域
Mar 20 Python
Python实现批量更换指定目录下文件扩展名的方法
Sep 19 Python
Python中一般处理中文的几种方法
Mar 06 Python
python re模块匹配贪婪和非贪婪模式详解
Feb 11 Python
python爬虫开发之selenium模块详细使用方法与实例全解
Mar 09 Python
django haystack实现全文检索的示例代码
Jun 24 Python
Python基础之教你怎么在M1系统上使用pandas
May 08 Python
解决python3安装pandas出错的问题
May 20 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
ThinkPHP模板判断输出Empty标签用法详解
2014/06/30 PHP
PHP实现的多彩标签效果代码分享
2014/08/21 PHP
php析构函数的简单使用说明
2015/08/24 PHP
PHP双向链表定义与用法示例
2018/01/31 PHP
php实现银联商务公众号+服务窗支付的示例代码
2019/10/12 PHP
Javascript 陷阱 window全局对象
2008/11/26 Javascript
js window.event对象详尽解析
2009/02/17 Javascript
基于jquery实现的可以编辑选择的下拉框的代码
2010/11/19 Javascript
关于jQuery对象数据缓存Cache原理以及jQuery.data详解
2013/04/07 Javascript
原生js实现给指定元素的后面追加内容
2013/04/10 Javascript
将nodejs打包工具整合到鼠标右键的方法
2013/05/11 NodeJs
微信小程序 SocketIO 实例讲解
2016/10/13 Javascript
基于bootstrap风格的弹框插件
2016/12/28 Javascript
Vue.js实现在下拉列表区域外点击即可关闭下拉列表的功能(自定义下拉列表)
2017/05/30 Javascript
jQuery超简单遮罩层实现方法示例
2018/09/06 jQuery
jQuery实现的鼠标拖动浮层功能示例【拖动div等任何标签】
2018/12/29 jQuery
详解JWT token心得与使用实例
2019/08/02 Javascript
NUXT SSR初级入门笔记(小结)
2019/12/16 Javascript
JS通过识别id、value值对checkbox设置选中状态
2020/02/19 Javascript
Vue 3.0 全家桶抢先体验
2020/04/28 Javascript
深入理解Django的中间件middleware
2018/03/14 Python
使用 Python 写一个简易的抽奖程序
2019/12/08 Python
手把手教你用Django执行原生SQL的方法
2021/02/18 Python
Cotton On香港网站:澳洲时装连锁品牌
2018/11/01 全球购物
学生发电厂实习自我鉴定
2013/09/22 职场文书
自荐信的禁忌和要点
2013/10/15 职场文书
文明风采获奖感言
2014/02/18 职场文书
奥利奥广告词
2014/03/20 职场文书
村干部培训班主持词
2014/03/28 职场文书
国旗下演讲稿
2014/05/08 职场文书
经管应届生求职信范文
2014/05/18 职场文书
房地产资料员岗位职责
2014/07/02 职场文书
幼儿园校园小喇叭广播稿
2014/10/17 职场文书
全国爱眼日活动总结
2015/02/27 职场文书
2015年林业工作总结
2015/05/14 职场文书
致男子1500米运动员的广播稿
2019/11/08 职场文书