介绍
本篇文章给大家分享的是有关如何在pyqt中远程批量执行Linux命令,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
功能
1。测试远程ssh连接是否成功,
2。批量执行远程ssh命令
<>强效果如下:强>
<强>代码如下:强>
# - *安康;编码:utf-8 - * - import 系统 得到PyQt4 import  QtCore, QtGui,芝加哥 import 语言环境 import 再保险 import 操作系统 得到PyQt4.QtCore import * 得到PyQt4.QtGui import * import paramiko 时间=qtCreatorFile “test.ui", #, Enter file 这里。 , Ui_MainWindow, QtBaseClass =, uic.loadUiType (qtCreatorFile) a =0 时间=username_list [] 时间=ip_list [] 时间=password_list [] class MyApp (QtGui.QMainWindow, Ui_MainWindow): def 才能__init__(自我): ,,,QtGui.QMainWindow.__init__(自我) ,,,Ui_MainWindow.__init__(自我) ,,,self.setupUi(自我) ,,,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(自我): ,,global ,,,ip =, self.ip.text () ,,,ip_list.append (ip) ,,,username =, self.username.text () ,,,username_list.append(用户名) ,,,password =, self.password.text () ,,,password_list.append(密码) ,,,self.table.setHorizontalHeaderLabels ((& # 39; ip # 39; & # 39;用户名# 39;,& # 39;密码# 39;]) ,,,newItem =, QTableWidgetItem (ip), ,,,self.table.setItem (,, 0,, newItem) ,,,, ,,,newItem =, QTableWidgetItem(用户名), ,,,self.table.setItem (,, 1,, newItem), ,,,, ,,,newItem =, QTableWidgetItem(密码), ,,,self.table.setItem (,, 2,, newItem) ,,,a +=1 def 才能test_link(自我): ,,,ip =, str (self.ip.text ()) ,,,username =, str (self.username.text ()) ,,,password =, str (self.password.text ()) ,,,试一试: ,,,,,ssh =, paramiko.SSHClient () ,,,,,ssh.set_missing_host_key_policy (paramiko.AutoAddPolicy ()) ,,,,,ssh.connect (ip,, 22日,用户名,密码) ,,,,,,,stdin stdout,, stderr =, ssh.exec_command (“who") ,,,,,print stdout.read () ,,,,,search =, re.search (stdout.read(),用户名) ,,,,,if 搜索: ,,,,,,,info =, u"连接成功”; ,,,,,其他的: ,,,,,,,info =, u"连接失败“; ,,,除了: ,,,,,info =, u"连接失败“; ,,,print 信息 ,,,self.state.setText(信息) ,,,ssh.close () , def 才能do_command(自我): ,,,command =, str (self.command.text ()) ,,,ssh =, paramiko.SSHClient () ,,,ssh.set_missing_host_key_policy (paramiko.AutoAddPolicy ()) ,,,for 小姐:拷贝范围(len (ip_list)): ,,,,,ip =, str (ip_list[我]) ,,,,,username =, str (username_list[我]) ,,,,,password =, str (password_list[我]) ,,,,,ssh.connect (ip,, 22日,用户名,密码) ,,,,,,,stdin stdout,, stderr =, ssh.exec_command(命令) ,,,,,info =, stdout.read () ,,,,,self.result.append(信息) , ,,,ssh.close () , , , , if __name__ ==,“__main__": 时间=app 才能;QtGui.QApplication (sys.argv) 时间=mycode 才能;locale.getpreferredencoding () 时间=code 才能;QTextCodec.codecForName (mycode) QTextCodec.setCodecForLocale才能(代码) QTextCodec.setCodecForTr才能(代码) QTextCodec.setCodecForCStrings才能(代码) 时间=window 才能;MyApp () window.show才能() null如何在pyqt中远程批量执行Linux命令