如何在pyqt中远程批量执行Linux命令

  介绍

本篇文章给大家分享的是有关如何在pyqt中远程批量执行Linux命令,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

功能

1。测试远程ssh连接是否成功,

2。批量执行远程ssh命令

<>强效果如下:

如何在pyqt中远程批量执行Linux命令

<强>代码如下:

# - *安康;编码: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命令