pyqt遠(yuǎn)程批量執(zhí)行Linux命令程序的方法
寫了個小程序:
功能
1.測試遠(yuǎn)程ssh連接是否成功,
2.批量執(zhí)行遠(yuǎn)程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遠(yuǎn)程批量執(zhí)行Linux命令程序的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
django xadmin action兼容自定義model權(quán)限教程
這篇文章主要介紹了django xadmin action兼容自定義model權(quán)限教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
python 實現(xiàn)矩陣上下/左右翻轉(zhuǎn),轉(zhuǎn)置的示例
今天小編就為大家分享一篇python 實現(xiàn)矩陣上下/左右翻轉(zhuǎn),轉(zhuǎn)置的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01
Python plt.boxplot函數(shù)及其參數(shù)使用小結(jié)
plt.boxplot函數(shù)用于繪制箱線圖,本文介紹了Python plt.boxplot函數(shù)及其參數(shù)使用小結(jié),文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-02-02
python中strip(),lstrip(),rstrip()函數(shù)的使用講解
這篇文章主要介紹了python中strip(),lstrip(),rstrip()函數(shù)的使用講解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
150行Python代碼實現(xiàn)帶界面的數(shù)獨(dú)游戲
這篇文章主要介紹了150行Python代碼實現(xiàn)帶界面的數(shù)獨(dú)游戲,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
Python實現(xiàn)把utf-8格式的文件轉(zhuǎn)換成gbk格式的文件
這篇文章主要介紹了Python實現(xiàn)把utf-8格式的文件轉(zhuǎn)換成gbk格式的文件,本文給出了實現(xiàn)代碼并同時剖析了代碼的作用,需要的朋友可以參考下2015-01-01

