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实现探测socket和web服务示例
Mar 28 Python
Django1.3添加app提示模块不存在的解决方法
Aug 26 Python
Python自动化构建工具scons使用入门笔记
Mar 10 Python
python去掉 unicode 字符串前面的u方法
Oct 21 Python
Python中logging.NullHandler 的使用教程
Nov 29 Python
Appium+python自动化之连接模拟器并启动淘宝APP(超详解)
Jun 17 Python
python实现在cmd窗口显示彩色文字
Jun 24 Python
python__name__原理及用法详解
Nov 02 Python
Python过滤掉numpy.array中非nan数据实例
Jun 08 Python
通过实例简单了解python yield使用方法
Aug 06 Python
python入门教程之基本算术运算符
Nov 13 Python
如何用python批量调整视频声音
Dec 22 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正则匹配文章中的远程图片地址并下载图片至本地
2015/09/29 PHP
php中session定期自动清理的方法
2015/11/12 PHP
详解php几行代码实现CSV格式文件输出
2017/07/01 PHP
javascript函数库-集合框架
2007/04/27 Javascript
Asp.net下使用Jquery Ajax传送和接收DataTable的代码
2010/09/12 Javascript
js获得指定控件输入光标的坐标兼容IE,Chrome,火狐等多种主流浏览器
2013/05/21 Javascript
同域jQuery(跨)iframe操作DOM(实例讲解)
2013/12/19 Javascript
在每个匹配元素的外部插入新元素的方法
2013/12/20 Javascript
javascript将url中的参数加密解密代码
2014/11/17 Javascript
JavaScript从数组中删除指定值元素的方法
2015/03/18 Javascript
Bootstrap前端开发案例二
2016/06/17 Javascript
微信小程序实现action-sheet弹出底部菜单功能【附源码下载】
2017/12/09 Javascript
详解vue中localStorage的使用方法
2018/11/22 Javascript
微信小程序实现商品属性联动选择
2019/02/15 Javascript
javascript实现文字跑马灯效果
2020/06/18 Javascript
[05:13]2018DOTA2亚洲邀请赛主赛事第二日战况回顾 LGD、VG双雄携手晋级
2018/04/05 DOTA
解析Python中的异常处理
2015/04/28 Python
python2.7的编码问题与解决方法
2016/10/04 Python
python实现简易通讯录修改版
2018/03/13 Python
python 美化输出信息的实例
2018/10/15 Python
Python把对应格式的csv文件转换成字典类型存储脚本的方法
2019/02/12 Python
使用CSS3实现圆角,阴影,透明
2014/12/23 HTML / CSS
WSDL的操作类型主要有几种
2013/07/19 面试题
国贸专业的职业规划范文
2014/01/23 职场文书
大学生评语大全
2014/04/18 职场文书
端午节演讲稿
2014/05/23 职场文书
2014年预备党员学习新党章思想汇报
2014/09/15 职场文书
乡镇三严三实学习心得体会
2014/10/13 职场文书
服装区域经理岗位职责
2015/04/10 职场文书
元旦联欢晚会主持词
2015/07/01 职场文书
好人好事新闻稿
2015/07/17 职场文书
高二数学教学反思
2016/02/18 职场文书
调解协议书范本
2016/03/21 职场文书
Python基础之元编程知识总结
2021/05/23 Python
Python趣味挑战之教你用pygame画进度条
2021/05/31 Python
使用python创建股票的时间序列可视化分析
2022/03/03 Python