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爬虫之urllib2使用指南
Nov 05 Python
Python实现二维数组按照某行或列排序的方法【numpy lexsort】
Sep 22 Python
python中文分词教程之前向最大正向匹配算法详解
Nov 02 Python
wxPython的安装图文教程(Windows)
Dec 28 Python
使用Django和Python创建Json response的方法
Mar 26 Python
python调试神器PySnooper的使用
Jul 03 Python
Django 对IP访问频率进行限制的例子
Aug 30 Python
python 计算概率密度、累计分布、逆函数的例子
Feb 25 Python
python转化excel数字日期为标准日期操作
Jul 14 Python
Python实现文件压缩和解压的示例代码
Aug 12 Python
将不规则的Python多维数组拉平到一维的方法实现
Jan 11 Python
在pyCharm中下载第三方库的方法
Apr 18 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 5.3新特性命名空间规则解析及高级功能
2010/03/11 PHP
PHP把MSSQL数据导入到MYSQL的方法
2014/12/27 PHP
ucenter通信原理分析
2015/01/09 PHP
php异常处理方法实例汇总
2015/06/24 PHP
分享PHP守护进程类
2015/12/30 PHP
完整显示当前日期和时间的JS代码
2007/09/17 Javascript
CSS+Jquery实现页面圆角框方法大全
2009/12/24 Javascript
JavaScript 学习笔记一些小技巧
2010/03/28 Javascript
Javascript异步表单提交,图片上传,兼容异步模拟ajax技术
2010/05/10 Javascript
jQuery EasyUI API 中文文档 - Pagination分页
2011/09/29 Javascript
在linux中使用包管理器安装node.js
2015/03/13 Javascript
为什么JS中eval处理JSON数据要加括号
2015/04/13 Javascript
jQuery遍历json的方法分析
2016/04/16 Javascript
JS实现改变HTML上文字颜色和内容的方法
2016/12/30 Javascript
nodejs实现连接mongodb数据库的方法示例
2018/03/15 NodeJs
解决vue项目中type=”file“ change事件只执行一次的问题
2018/05/16 Javascript
简单了解JavaScript异步
2019/05/23 Javascript
简单了解JavaScript中的执行上下文和堆栈
2019/06/24 Javascript
详解nvm管理多版本node踩坑
2019/07/26 Javascript
VUE中setTimeout和setInterval自动销毁案例
2020/09/07 Javascript
原生js实现自定义消息提示框
2020/11/19 Javascript
PyQt5实现简单数据标注工具
2019/03/18 Python
Python+OpenCv制作证件图片生成器的操作方法
2019/08/21 Python
Keras使用tensorboard显示训练过程的实例
2020/02/15 Python
python是怎么被发明的
2020/06/15 Python
Win10环境中如何实现python2和python3并存
2020/07/20 Python
纯CSS3大转盘抽奖示例代码(响应式、可配置)
2017/01/13 HTML / CSS
HTML5中Canvas与SVG的画图原理比较
2013/01/16 HTML / CSS
FLOS美国官网:意大利高级照明工艺的传奇
2018/08/07 全球购物
Habitat家居英国官方网站:沙发、家具、照明、厨房和户外
2019/12/12 全球购物
采购助理岗位职责
2014/02/16 职场文书
蓝颜请假条
2014/04/11 职场文书
财政局党的群众路线教育实践活动整改方案
2014/09/21 职场文书
个人三严三实对照检查材料
2014/09/25 职场文书
学生实习证明模板汇总
2014/09/25 职场文书
pytorch锁死在dataloader(训练时卡死)
2021/05/28 Python