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批量下载图片的三种方法
Apr 22 Python
python中urlparse模块介绍与使用示例
Nov 19 Python
python pandas修改列属性的方法详解
Jun 09 Python
使用sklearn之LabelEncoder将Label标准化的方法
Jul 11 Python
Python爬虫框架Scrapy基本用法入门教程
Jul 26 Python
对python多线程SSH登录并发脚本详解
Feb 14 Python
python多进程读图提取特征存npy
May 21 Python
10 行Python 代码实现 AI 目标检测技术【推荐】
Jun 14 Python
解决python文件双击运行秒退的问题
Jun 24 Python
pytorch标签转onehot形式实例
Jan 02 Python
tensorflow 模型权重导出实例
Jan 24 Python
细说NumPy数组的四种乘法的使用
Dec 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
Dwz与thinkphp整合下的数据导出到Excel实例
2014/12/04 PHP
Smarty模板变量与调节器实例详解
2019/07/20 PHP
JS和jquery获取各种屏幕的宽度和高度的代码
2013/08/02 Javascript
异步动态加载js与css文件的js代码
2013/09/15 Javascript
jquery Ajax 实现加载数据前动画效果的示例代码
2014/02/07 Javascript
Javascript动态引用CSS文件的2种方法介绍
2014/06/06 Javascript
jQuery实现滚动鼠标放大缩小图片的方法(附demo源码下载)
2016/03/05 Javascript
jquery UI Datepicker时间控件的使用及问题解决
2016/04/28 Javascript
基于滚动条位置判断的简单实例
2017/12/14 Javascript
关于express与koa的使用对比详解
2018/01/25 Javascript
如何以Angular的姿势打开Font-Awesome详解
2018/04/22 Javascript
vue异步axios获取的数据渲染到页面的方法
2018/08/09 Javascript
微信小程序批量监听输入框对按钮样式进行控制的实现代码
2019/10/12 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
2020/07/10 Javascript
python中关于日期时间处理的问答集锦
2013/03/08 Python
浅析Python多线程下的变量问题
2015/04/28 Python
python处理大数字的方法
2015/05/27 Python
Python实现将doc转化pdf格式文档的方法
2018/01/19 Python
分析python动态规划的递归、非递归实现
2018/03/04 Python
Python安装lz4-0.10.1遇到的坑
2018/05/20 Python
Python实现的朴素贝叶斯算法经典示例【测试可用】
2018/06/13 Python
对python list 遍历删除的正确方法详解
2018/06/29 Python
windows下numpy下载与安装图文教程
2019/04/02 Python
浅谈Python描述数据结构之KMP篇
2020/09/06 Python
C++和python实现阿姆斯特朗数字查找实例代码
2020/12/07 Python
Python爬取梨视频的示例
2021/01/29 Python
美国学校校服,儿童和婴儿服装:Cookie’s Kids
2016/10/14 全球购物
La Redoute英国官网:法国时尚品牌
2017/04/27 全球购物
护理中职生求职信范文
2014/02/24 职场文书
我的大学生活演讲稿
2014/04/25 职场文书
学习党的群众路线对照检查材料
2014/09/29 职场文书
入党政审材料范文
2014/12/24 职场文书
党员年度个人总结
2015/02/14 职场文书
集结号观后感
2015/06/08 职场文书
小学安全教育主题班会
2015/08/12 职场文书
Python 数据可视化神器Pyecharts绘制图像练习
2022/02/28 Python