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进度条脚本
Dec 18 Python
Python微信公众号开发平台
Jan 25 Python
python3+PyQt5泛型委托详解
Apr 24 Python
对python 树状嵌套结构的实现思路详解
Aug 09 Python
Python Pandas 转换unix时间戳方式
Dec 07 Python
Flask 上传自定义头像的实例详解
Jan 09 Python
django xadmin中form_layout添加字段显示方式
Mar 30 Python
Python CSS选择器爬取京东网商品信息过程解析
Jun 01 Python
python使用selenium爬虫知乎的方法示例
Oct 28 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
Nov 20 Python
Python实现钉钉/企业微信自动打卡的示例代码
Feb 02 Python
一篇文章搞懂python混乱的切换操作与优雅的推导式
Aug 23 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中使用Curl、socket、file_get_contents三种方法POST提交数据
2011/08/12 PHP
PHP读取PDF内容配合Xpdf的使用
2012/11/24 PHP
Codeigniter生成Excel文档的简单方法
2014/06/12 PHP
php 过滤英文标点符号及过滤中文标点符号代码
2014/06/12 PHP
php将html转为图片的实现方法
2017/05/19 PHP
date.parse在IE和FF中的区别
2010/07/29 Javascript
js 自制滚动条的小例子
2013/03/16 Javascript
js hover 定时器(实例代码)
2013/11/12 Javascript
防止登录页面出现在frame中js代码
2014/07/22 Javascript
JS实现网站菜单拖拽移位效果的方法
2015/09/24 Javascript
获取IE浏览器Cookie信息的方法
2017/01/23 Javascript
Bootstrap按钮组简单实现代码
2017/03/06 Javascript
微信小程序使用map组件实现获取定位城市天气或者指定城市天气数据功能
2019/01/22 Javascript
angular多语言配置详解
2019/05/16 Javascript
JavaScript 作用域实例分析
2019/10/02 Javascript
微信小程序页面渲染实现方法
2019/11/06 Javascript
JQuery发送ajax请求时中文乱码问题解决
2019/11/14 jQuery
微信小程序新闻网站详情页实例代码
2020/01/10 Javascript
Linux中安装Python的交互式解释器IPython的教程
2016/06/13 Python
python魔法方法-属性转换和类的表示详解
2016/07/22 Python
mysql 之通过配置文件链接数据库
2017/08/12 Python
Python 3.6 读取并操作文件内容的实例
2018/04/23 Python
浅谈Pycharm调用同级目录下的py脚本bug
2018/12/03 Python
python sort、sort_index方法代码实例
2019/03/28 Python
使用 tf.nn.dynamic_rnn 展开时间维度方式
2020/01/21 Python
Python操作MySQL数据库的示例代码
2020/07/13 Python
利用Python实现Json序列化库的方法步骤
2020/09/09 Python
css3气泡 css3关键帧动画创建的动态通知气泡
2013/02/26 HTML / CSS
选购国际女性时装设计师品牌:IFCHIC(支持中文)
2018/04/12 全球购物
俄罗斯名牌服装网上商店:UNIQUE FABRIC
2019/07/25 全球购物
市场营销专业毕业生自荐信
2013/11/02 职场文书
专科应届生求职信
2013/11/24 职场文书
运动会广播稿150字
2014/02/19 职场文书
消防标语大全
2014/06/07 职场文书
2014国庆节主题活动方案:快乐的国庆节
2014/09/16 职场文书
javaScript Array api梳理
2021/03/31 Javascript