pyqt远程批量执行Linux命令程序的方法
作者:黑面狐 发布时间:2023-05-08 15:59:06
标签:pyqt,远程,Linux,命令
写了个小程序:
功能
1.测试远程ssh连接是否成功,
2.批量执行远程ssh命令
效果如下:
代码如下:
#-*- 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_())
来源:https://blog.csdn.net/qq1124794084/article/details/53982337
0
投稿
猜你喜欢
- 本文介绍的是python中pandas.DataFrame对行与列求和及添加新行与列的相关资料,下面话不多说,来看看详细的介绍吧。方法如下:
- SQL SERVER数据存储的形式在谈到几种不同的读取方式之前,首先要理解SQL SERVER数据存储的方式.SQL SERVER存储的最小
- 另外一类常用的模板标签是通过渲染 其他 模板显示数据的。 比如说,Django的后台管理界面,它使用了自定义的模板标签来显示新增/编辑表单页
- 前言本文提供获取视频时长的python代码,精确到毫秒,一如既往的实用主义。环境依赖 ffmpeg环境安装,可以参考:window
- 数据库系统的安全性包括很多方面。由于很多情况下,数据库服务器容许客户机从网络上连接,因此客户机连接的安全对MySQL数据库安全有很重要的影响
- 点击获取后,返回2s后的鼠标位置,显示在文本框(需要用pip命令安装所需的的库)(pip install 模块名比如 安装pyautogui
- 在所有的比例中黄金分割是最能引起人的美感的,0.618被公认为最具有审美意义的比例数字。黄金分割之所以那么普遍的流行,我猜一定跟理想女人体的
- 本文实例为大家分享了python爬取网页内容转换为PDF的具体代码,供大家参考,具体内容如下将廖雪峰的学习教程转换成PDF文件,代码只适合该
- 可以让我们将数据用表格的方式展示出来安装方式pip install PrettyTable测试是否安装成功使用方法与对比增加一条数据先简单的
- 1.新建一个vs2003的web工程,取名为XMLTest &nbs
- 以前做音乐项目的时候,最让我们头痛的就是满足用户的问题。在音乐的领域,不要试图去满足所有用户这个定律得到了最充分的验证。究其原因,无非是音乐
- Jinja2需要Python2.4以上的版本。 安装 按照Jinja有多种方式,你可以根据需要选择不同的按照方式。 使用easy_insta
- asp 中处理文件上传以及删除时常用的自定义函数:删除文件,建立目录的程序,根据原文件名生成新的随机文件名,CMS替换函数,将所有开始,结束
- 一、制作思路由于注册的时候常常会用到注册码来防止机器恶意注册,这里我发表一个产生png图片验证码的基本图像,简单的思路分析:1、产生一张pn
- 小毅的blog:http://andymao.com/andy/注:本文实例在IE5.x下可能会显示不出来,请使用IE6、IE7、Firef
- 我们使用的是QWebview模块,这里也主要是展示下QWebview的用法。之前在网上找了半天的解析网页的内容,都不是很清楚。这是核心代码:
- 先看伟大的高斯分布(Gaussian Distribution)的概率密度函数(probability density function):
- 我们公司网站的项目都是采用utf-8编码格式的,一天,发现部分电脑打开网站的一个页面是空白页,要在IE下重新选择编码才显示正常。我们网站的编
- 前言大家好,我叫善念。这是我的第二篇博客,也是第一篇技术博客,希望大家多多支持,让我更加有动力去更新一些python爬虫类的案例教程。开始确
- 实例如下所示:# -*- coding: UTF-8 -*-from urllib import requestif __name__ ==