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

写了个小程序:

功能

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

2.批量执行远程ssh命令

效果如下:

b9d0a37ede7f2d12462c583840ce9df5.png

代码如下:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值