对python多线程SSH登录并发脚本详解


Posted in Python onFebruary 14, 2019

测试系统中有一项记录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 = '''
   _____ _____ _ 
  | ___| | _ \ | | 
  | |__ | |_| | | | 
  | __| | _ { | | 
  | |  | |_| | | | 
  |_|  |_____/ |_| 
    Code by FBI.
   '''
 print figlet
 print u"认证攻击次数=线程数*每个线程认证攻击次数"
 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:
  print u"因为输入不规范导致程序出现错误,请输入数字"

2.pyinstaller制作exe程序

下载pyinstaller后

在根目录中cmd中执行python setup.py install安装pyinstaller

安装完成后执行命令打成exe文件

python pyinstaller.py -F 文件路径

3.执行效果

如图:

对python多线程SSH登录并发脚本详解

以上这篇对python多线程SSH登录并发脚本详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现判断数组是否包含指定元素的方法
Jul 15 Python
python爬虫实战之爬取京东商城实例教程
Apr 24 Python
浅谈Python2.6和Python3.0中八进制数字表示的区别
Apr 28 Python
Python 获取当前所在目录的方法详解
Aug 02 Python
Python数据集切分实例
Dec 08 Python
基于wxPython的GUI实现输入对话框(2)
Feb 27 Python
关于Python中定制类的比较运算实例
Dec 19 Python
使用keras2.0 将Merge层改为函数式
May 23 Python
matplotlib教程——强大的python作图工具库
Oct 15 Python
五种Python转义表示法
Nov 27 Python
python基于selenium爬取斗鱼弹幕
Feb 20 Python
Python之Matplotlib绘制热力图和面积图
Apr 13 Python
Python Selenium 之关闭窗口close与quit的方法
Feb 13 #Python
python 实现selenium断言和验证的方法
Feb 13 #Python
使用Python自动化破解自定义字体混淆信息的方法实例
Feb 13 #Python
python selenium执行所有测试用例并生成报告的方法
Feb 13 #Python
对python_discover方法遍历所有执行的用例详解
Feb 13 #Python
django2.0扩展用户字段示例
Feb 13 #Python
Python查找最长不包含重复字符的子字符串算法示例
Feb 13 #Python
You might like
递归列出所有文件和目录
2006/10/09 PHP
用php写的serv-u的web申请账号的程序
2006/10/09 PHP
php数组函数序列之array_sum() - 计算数组元素值之和
2011/10/29 PHP
PHP生成随机数的方法实例分析
2015/01/22 PHP
Yii框架使用PHPExcel导出Excel文件的方法分析【改进版】
2019/07/24 PHP
PHP sdk文档处理常用代码示例解析
2020/12/09 PHP
有趣的javascript数组定义方法
2010/09/10 Javascript
jQuery的链式调用浅析
2010/12/03 Javascript
raphael.js绘制中国地图 地图绘制方法
2014/02/12 Javascript
javascript引用赋值(地址传值)用法实例
2015/01/13 Javascript
AngularJS基础教程之简单介绍
2015/09/27 Javascript
JavaScript+html5 canvas制作的百花齐放效果完整实例
2016/01/26 Javascript
前端编码规范(3)JavaScript 开发规范
2017/01/21 Javascript
AngularJS表格样式简单设置方法示例
2017/03/03 Javascript
9种使用Chrome Firefox 自带调试工具调试javascript技巧
2017/12/22 Javascript
vue使用v-for实现hover点击效果
2018/09/29 Javascript
JS使用canvas中的measureText方法测量字体宽度示例
2019/02/02 Javascript
vue2 中二级路由高亮问题及配置方法
2019/06/10 Javascript
angularjs自定义过滤器demo示例
2019/08/24 Javascript
Vue如何使用混合Mixins和插件开发详解
2020/02/05 Javascript
vue组件中传值EventBus的使用及注意事项说明
2020/11/16 Javascript
微信小程序绘制半圆(弧形)进度条
2020/11/18 Javascript
[05:07]DOTA2英雄梦之声_第14期_暗影恶魔
2014/06/20 DOTA
[01:31]完美与DOTA2历程
2014/07/31 DOTA
python ip正则式
2009/05/07 Python
对Python 中矩阵或者数组相减的法则详解
2019/08/26 Python
详解numpy1.19.4与python3.9版本冲突解决
2020/12/15 Python
python 通过exifread读取照片信息
2020/12/24 Python
美国复古街头服饰精品店:Need Supply Co.
2017/02/22 全球购物
研究生求职推荐信范文
2013/11/30 职场文书
早会主持词
2014/03/17 职场文书
六五普法宣传标语
2014/10/06 职场文书
青岛海底世界导游词
2015/02/11 职场文书
毕业生登记表班级意见
2015/06/05 职场文书
单位提档介绍信
2015/10/22 职场文书
python tkinter实现定时关机
2021/04/21 Python