對python多執行緒SSH登入併發指令碼詳解

2022-10-04 18:03:12 字數 1804 閱讀 6947

測試系統中有一項記錄ssh登入日誌,需要對此進行併發壓力測試。

於是用多執行緒進行python併發記錄

因為需要安裝的一些依賴和模組比較麻煩,指令碼完成後再用pyinstaller打成exe包分發給其他測試人員一起使用。

1.指令碼編寫

# -*- coding: utf-8 -*-

import paramiko

import threading

import time

lt =

def ssh(a,xh,sp):

count = 0

for i in range(0,xh):

try:

ssh = paramiko.sshclient()

ssh.set_missing_host_key_policy(paramiko.autoaddpolicy())

ssh.connect('ip位址',22,'使用者名稱', '密碼')

ssh.close()

print u"執行緒[%s]第[%s]次登入"%(a,i)

if sp != 0:

time.sleep(sp)

count += 1

except:

print u"執行緒異常,已處理"

lt.append(count)

if __name__ == "__main__":

figlet = '''

_____ _____ _

| ___| | _ \ | |

| |__ | |_| | | |

| __| | _ { | |

| | | |_| | | |

|_| |_____/ |_|

www.cppcns.com code by fbi.

'''print figlet

print "認證攻擊次數=執行緒數*每個執行緒認證攻擊次數"

print u"請輸入執行緒數:"

xc = raw_input()

print u"請輸入每個執行緒攻擊次數:"

xh = raw_input()

print u"請輸入每個執行緒延遲時間(秒),0為不休眠:"

sp = raw_input()

try:

print u"預計總共傳送認證攻擊%s次"%(int(xc)*int(xh))

threads =

for j in range(int(xc)):

threads.append(threading.thread(target=ssh,args=(j,int(xh),int(sp),)))

for t in threads:

t.start()

print t.name

t.join()

print lt

count = 0

for count in lt:

count += count

print u"程式執行完畢總共傳送認證攻擊【%s】次" % count

except valueerror,e:

p u"因為程式設計客棧輸入不規範導致程式出現錯誤,請輸入數字"

2.pyinstaller製作exe程式

**pyinstaller後

在根目錄中cmd中執行python setup.py install安裝pyinstaller

安裝完成後執行命令打成exe檔案

python pyinstaller.py -f 檔案路徑

3.執行效果

如圖:本文標題: 對python多執行緒ssh登入併發指令碼詳解

本文位址:

python多執行緒 python多執行緒

通常來說,多程序適用於計算密集型任務,多執行緒適用於io密集型任務,如網路爬蟲。關於多執行緒和多程序的區別,請參考這個 下面將使用python標準庫的multiprocessing包來嘗試多執行緒的操作,在python中呼叫多執行緒要使用multiprocessing.dummy,如果是多程序則去掉...

SSH秘鑰對登入

這裡的ssh秘鑰對登入是在linux中配置hadoop時用到的,為了使各個伺服器之間能夠無密碼的相互通訊,但同樣也可用在兩台linux之間的相互通訊,也可用在伺服器管理人員無密碼遠端登入伺服器,這樣做既安全又方便。這裡把兩台伺服器作為實驗物件,一台成為ssh客戶機,一台成為ssh伺服器 大致流程是先...

對python 多執行緒thread的認識

對python 多執行緒thread的認識 標題 class doutulaspider threading.thread headers def init self,args,kwargs self.page que queue 10 self.img que queue 20 defrun se...