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


Posted in Python onFebruary 14, 2019

写了个小程序:

功能

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

Python 相关文章推荐
Python中input和raw_input的一点区别
Oct 21 Python
python通过cookie模拟已登录状态的初步研究
Nov 09 Python
浅谈django model的get和filter方法的区别(必看篇)
May 23 Python
python实现将文件夹下面的不是以py文件结尾的文件都过滤掉的方法
Oct 21 Python
利用Python实现微信找房机器人实例教程
Mar 10 Python
python切片的步进、添加、连接简单操作示例
Jul 11 Python
Django Admin后台添加数据库视图过程解析
Apr 01 Python
Python使用pdb调试代码的技巧
May 03 Python
scrapy头部修改的方法详解
Dec 06 Python
Python新建项目自动添加介绍和utf-8编码的方法
Dec 26 Python
简单且有用的Python数据分析和机器学习代码
Jul 02 Python
python利用while求100内的整数和方式
Nov 07 Python
情人节快乐! python绘制漂亮玫瑰
Aug 18 #Python
python实现全盘扫描搜索功能的方法
Feb 14 #Python
使用python的pexpect模块,实现远程免密登录的示例
Feb 14 #Python
centos6.5安装python3.7.1之后无法使用pip的解决方案
Feb 14 #Python
Python模拟百度自动输入搜索功能的实例
Feb 14 #Python
python 处理telnet返回的More,以及get想要的那个参数方法
Feb 14 #Python
python 多个参数不为空校验方法
Feb 14 #Python
You might like
如何隐藏你的.php文件
2007/01/04 PHP
PHP5中虚函数的实现方法分享
2011/04/20 PHP
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
2011/11/10 PHP
PHP中fwrite与file_put_contents性能测试代码
2013/08/02 PHP
WordPress中邮件的一些修改和自定义技巧
2015/12/15 PHP
PHP通过加锁实现并发情况下抢码功能
2016/08/10 PHP
轻松掌握php设计模式之访问者模式
2016/09/23 PHP
thinkPHP5框架auth权限控制类与用法示例
2018/06/12 PHP
form中限制文本字节数js代码
2007/06/10 Javascript
javascript学习笔记(八)正则表达式
2014/10/08 Javascript
js仿腾讯QQ的web登陆界面
2016/08/19 Javascript
用js实现博客打赏功能
2016/10/24 Javascript
js实现自定义路由
2017/02/04 Javascript
jQuery中绑定事件bind() on() live() one()的异同
2017/02/23 Javascript
ES6使用Set数据结构实现数组的交集、并集、差集功能示例
2017/10/31 Javascript
Angularjs实现控制器之间通信方式实例总结
2018/03/27 Javascript
Vue前端开发规范整理(推荐)
2018/04/23 Javascript
vue使用Google地图的实现示例代码
2018/12/19 Javascript
vue-cli3 引入 font-awesome的操作
2020/08/11 Javascript
Python logging模块学习笔记
2014/05/24 Python
Python 列表排序方法reverse、sort、sorted详解
2016/01/22 Python
关于pip的安装,更新,卸载模块以及使用方法(详解)
2017/05/19 Python
浅谈python图片处理Image和skimage的区别
2019/08/04 Python
Python如何使用BeautifulSoup爬取网页信息
2019/11/26 Python
英国床和浴室商场:Bed & Bath Emporium
2018/05/20 全球购物
芬兰灯具网上商店:Nettilamppu.fi
2018/06/30 全球购物
台湾演唱会订票网站:StubHub台湾
2019/06/11 全球购物
伦敦最受欢迎的蛋糕店:Konditor & Cook
2019/11/01 全球购物
财务人员个人自荐信范文
2013/09/26 职场文书
办公文员的工作岗位职责
2013/11/12 职场文书
面试自我介绍演讲稿
2014/04/29 职场文书
中学生纪念九一八事变演讲稿
2014/09/14 职场文书
留学推荐信怎么写
2015/03/26 职场文书
高考诚信考试承诺书
2015/04/29 职场文书
劳动仲裁代理词范文
2015/05/25 职场文书
Python中Schedule模块使用详解 周期任务神器
2022/04/19 Python