pyqt远程批量执行Linux命令程序

原创 2017年01月02日 21:31:51

写了个小程序:

功能

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

2.批量执行远程ssh命令


效果如下:


代码如下:

#-*- 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_())




                    
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

windows 下 java程序jsch连接远程linux服务器执行shell命令

java远程连接服务的shell需要使用SSH的登录方式,可以使用JSch技术。JSch 是SSH2的一个纯Java实现。它允许你连接到一个sshd 服务器,使用端口转发,X11转发,文件传输等等。 ...

Java程序执行远程linux命令

此程序的目的是执行远程机器上的Shell脚本。 【环境参数】 远程机器IP:10.1.84.18 用户名:root 密码:root Shell脚本的路径:/kettle6.0/data-...

利用python fabric模块写的批量操作远程主机脚本(命令执行,上传、下载文件)

最近在学习python,借助fabric模块写了个批量操作服务器的脚本,在此分享给大家,如有不足之处,欢迎大家指正 准备工作: 安装python 2.6.5: yum -y inst...

python写的批量操作远程主机脚本(命令执行,上传、下载文件)

最近在学习python,借助fabric模块写了个批量操作服务器的脚本,在此分享给大家,如有不足之处,欢迎大家指正。   最近在学习python,借助fabric模块写了个批量操作服务器的脚本,在此...

python写的批量操作远程主机脚本(命令执行,上传、下载文件)

python写的批量操作远程主机脚本(命令执行,上传、下载文件) 2011-04-28 12:53:44 标签:服务器 脚本 ssh python 集中化管理 原创作品,允许转载...

批量远程执行shell命令工具

使用示例(使用了默认用户root,和默认端口号22): ./mooon_ssh --h=192.168.4.1,192.168.4.2 -P=password -c='cat /etc/hosts' ...

python写的批量操作远程主机脚本(命令执行,上传、下载文件)

最近在学习python,借助fabric模块写了个批量操作服务器的脚本,在此分享给大家,如有不足之处,欢迎大家指正 准备工作: 安装python 2.6.5: yum -y install re...

pyqt 批量ping一个网段 返回结果 的程序 (加了个界面 效果不理想)

qt生成的界面: # -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'ping_ui.ui' ...
  • nomefat
  • nomefat
  • 2015年09月29日 15:05
  • 809
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:pyqt远程批量执行Linux命令程序
举报原因:
原因补充:

(最多只允许输入30个字)