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使用Flask框架同时上传多个文件的方法
Mar 21 Python
用tensorflow实现弹性网络回归算法
Jan 09 Python
python3操作微信itchat实现发送图片
Feb 24 Python
详解PyTorch批训练及优化器比较
Apr 28 Python
Python3使用SMTP发送带附件邮件
Jun 16 Python
Django配置celery(非djcelery)执行异步任务和定时任务
Jul 16 Python
Python Pandas实现数据分组求平均值并填充nan的示例
Jul 04 Python
django settings.py 配置文件及介绍
Jul 15 Python
Python3 翻转二叉树的实现
Sep 30 Python
Django ValuesQuerySet转json方式
Mar 16 Python
PyQt5如何将.ui文件转换为.py文件的实例代码
May 26 Python
Python多线程实用方法以及共享变量资源竞争问题
Apr 12 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和ACCESS写聊天室(十)
2006/10/09 PHP
PHP+ACCESS 文章管理程序代码
2010/06/21 PHP
探讨:如何编写PHP扩展
2013/06/13 PHP
ThinkPHP模板比较标签用法详解
2014/06/30 PHP
PHP连接数据库实现注册页面的增删改查操作
2016/03/27 PHP
解决php扩展安装不生效问题
2019/10/25 PHP
JS 控制非法字符的输入代码
2009/12/04 Javascript
Jquery效果大全之制作电脑健康体检得分特效附源码下载
2015/11/02 Javascript
jQuery EasyUI 布局之动态添加tabs标签页
2015/11/18 Javascript
Vue自定义图片懒加载指令v-lazyload详解
2020/12/31 Javascript
easyui datagrid 表格中操作栏 按钮图标不显示的解决方法
2017/07/27 Javascript
深入研究React中setState源码
2017/11/17 Javascript
详解如何在Javascript和Sass之间共享变量
2019/11/13 Javascript
javascript实现异形滚动轮播
2019/11/28 Javascript
如何在JS文件中获取Vue组件
2020/09/16 Javascript
python压缩文件夹内所有文件为zip文件的方法
2015/06/20 Python
Windows下安装python MySQLdb遇到的问题及解决方法
2017/03/16 Python
Python队列的定义与使用方法示例
2017/06/24 Python
python合并同类型excel表格的方法
2018/04/01 Python
python验证码识别教程之滑动验证码
2018/06/04 Python
在Python中关于使用os模块遍历目录的实现方法
2019/01/03 Python
python爬取cnvd漏洞库信息的实例
2019/02/14 Python
Python 实现判断图片格式并转换,将转换的图像存到生成的文件夹中
2020/01/13 Python
Django ORM判断查询结果是否为空,判断django中的orm为空实例
2020/07/09 Python
python 日志模块logging的使用场景及示例
2021/01/04 Python
CSS3弹性布局内容对齐(justify-content)属性使用详解
2017/07/31 HTML / CSS
电气工程及其自动化学生实习自我鉴定
2013/09/19 职场文书
兰兰过桥教学反思
2014/02/08 职场文书
安全承诺书格式
2014/05/21 职场文书
公司证明怎么写
2014/09/22 职场文书
2014年护士工作总结范文
2014/11/11 职场文书
招标保密承诺书
2015/01/20 职场文书
成绩单家长意见
2015/06/03 职场文书
法律服务所工作总结
2015/08/10 职场文书
Python使用OpenCV和K-Means聚类对毕业照进行图像分割
2021/06/11 Python
Python基本的内置数据类型及使用方法
2022/04/13 Python