python

超轻量级php框架startmvc

pyqt远程批量执行Linux命令程序的方法

更新时间:2020-06-24 16:42:01 作者:startmvc
写了个小程序:功能1.测试远程ssh连接是否成功,2.批量执行远程ssh命令效果如下:代码如

写了个小程序:

功能

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命令程序的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

pyqt 远程 Linux命令