pyqt远程批量执行Linux命令程序
来源:互联网 发布:浴霸哪个牌子好 知乎 编辑:程序博客网 时间:2024/06/05 07:30
写了个小程序:
功能
1.测试远程ssh连接是否成功,
2.批量执行远程ssh命令
效果如下:
代码如下:
#-*- coding:utf-8 -*-import sysfrom PyQt4 import QtCore, QtGui, uicimport localeimport reimport osfrom PyQt4.QtCore import *from PyQt4.QtGui import *import paramikoqtCreatorFile = "test.ui" # Enter file here.Ui_MainWindow, QtBaseClass = uic.loadUiType(qtCreatorFile)a = 0username_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_())
0 0
- pyqt远程批量执行Linux命令程序
- Java程序执行远程linux命令
- linux远程批量执行命令的shell脚本
- linux 执行远程命令
- 批量远程执行shell命令工具
- expect无信任远程批量执行命令
- sh, 批量执行Linux命令
- sh, 批量执行Linux命令
- 在Windows下用plink工具批量实现自动远程登录Linux并执行关机命令
- Windwos远程执行Linux命令
- linux 远程命令执行不
- java远程执行linux命令
- java远程执行linux命令
- java远程执行linux命令
- linux shell 远程执行命令
- Java远程执行Linux命令
- java 远程执行linux命令
- linux 远程登录执行命令
- 【MySQL 5.7 Reference Manual】15.4.4 Redo Log Buffer(Redo日志缓冲)
- Spring学习(二)环境搭建
- 【JAVA 10.25】
- Binary Tree Level Order Traversal
- DOM特性
- pyqt远程批量执行Linux命令程序
- java 消息机制 ActiveMQ入门实例
- 【MySQL 5.7 Reference Manual】15.4.5 System Tablespace(系统表空间)
- Windows下cmd进入MySql的命令界面
- 【MySQL 5.7 Reference Manual】15.4.6 InnoDB Data Dictionary(InnoDB数据字典)
- MyEclipse开发Hibernate入门实例
- 用C++画表格
- 递归法之最长回文子序列(java)
- 【MySQL 5.7 Reference Manual】15.4.7 Doublewrite Buffer(双写缓冲)