白云岛资源网 Design By www.pvray.com
写了个小程序:
功能
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_())
以上这篇pyqt远程批量执行Linux命令程序的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
白云岛资源网 Design By www.pvray.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
白云岛资源网 Design By www.pvray.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。