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字符串,数值计算
Oct 05 Python
python按综合、销量排序抓取100页的淘宝商品列表信息
Feb 24 Python
使用 Python 实现文件递归遍历的三种方式
Jul 18 Python
Python 获取中文字拼音首个字母的方法
Nov 28 Python
对python制作自己的数据集实例讲解
Dec 12 Python
python语言基本语句用法总结
Jun 11 Python
python3 下载网络图片代码实例
Aug 27 Python
opencv3/C++ 平面对象识别&透视变换方式
Dec 11 Python
django修改models重建数据库的操作
Mar 31 Python
opencv 查找连通区域 最大面积实例
Jun 04 Python
Python基于百度AI实现抓取表情包
Jun 27 Python
python开发的自动化运维工具ansible详解
Aug 07 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
fetchAll()与mysql_fetch_array()的区别详解
2013/06/05 PHP
ueditor 1.2.6 使用方法说明
2013/07/24 PHP
php时间戳转换的示例
2014/03/31 PHP
Laravel 批量更新多条数据的示例
2017/11/27 PHP
XP折叠菜单&仿QQ2006菜单
2006/12/16 Javascript
使用text方法获取Html元素文本信息示例
2014/09/01 Javascript
JavaScript使用replace函数替换字符串的方法
2015/04/06 Javascript
浅谈JavaScript正则表达式分组匹配
2015/04/10 Javascript
招聘网站基于jQuery实现自动刷新简历
2015/05/10 Javascript
jQuery实现弹出窗口中切换登录与注册表单
2015/06/05 Javascript
js+html5获取用户地理位置信息并在Google地图上显示的方法
2015/06/05 Javascript
jQuery操作cookie
2016/08/08 Javascript
Vue.JS项目中5个经典Vuex插件
2017/11/28 Javascript
JavaScript 判断对象中是否有某属性的常用方法
2018/06/14 Javascript
vue element 关闭当前tab 跳转到上一路由操作
2020/07/22 Javascript
python读取html中指定元素生成excle文件示例
2014/04/03 Python
Python中模拟enum枚举类型的5种方法分享
2014/11/22 Python
详解Django中的权限和组以及消息
2015/07/23 Python
Python3字符串encode与decode的讲解
2019/04/02 Python
Python OpenCV利用笔记本摄像头实现人脸检测
2020/08/20 Python
解决python tkinter界面卡死的问题
2019/07/17 Python
python实现的批量分析xml标签中各个类别个数功能示例
2019/12/30 Python
Python之关于类变量的两种赋值区别详解
2020/03/12 Python
Pytorch环境搭建与基本语法
2020/06/03 Python
keras:model.compile损失函数的用法
2020/07/01 Python
我的珠宝盒:Ma boîte à bijoux
2019/08/27 全球购物
飞利信loadrunner和软件测试笔试题
2012/09/22 面试题
年度考核自我鉴定
2014/02/02 职场文书
初中生自我鉴定
2014/02/04 职场文书
销售内勤岗位职责
2014/04/15 职场文书
职业生涯规划书结束语
2014/04/15 职场文书
小学“向国旗敬礼”网上签名寄语活动总结
2014/09/27 职场文书
质量保证书怎么写
2015/02/27 职场文书
工作调动申请报告
2015/05/18 职场文书
2015教师节通讯稿
2015/07/20 职场文书
MySql分区类型及创建分区的方法
2022/04/13 MySQL