对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服务器端收发请求的实现代码
Sep 29 Python
python实现2048小游戏
Mar 30 Python
python去掉行尾的换行符方法
Jan 04 Python
python dict 字典 以及 赋值 引用的一些实例(详解)
Jan 20 Python
Python3.6笔记之将程序运行结果输出到文件的方法
Apr 22 Python
解决Python 命令行执行脚本时,提示导入的包找不到的问题
Jan 19 Python
python实现查找所有程序的安装信息
Feb 18 Python
python json load json 数据后出现乱序的解决方案
Feb 27 Python
python线性插值解析
Jul 05 Python
keras实现VGG16方式(预测一张图片)
Jul 07 Python
Python实现扫码工具的示例代码
Oct 09 Python
python-opencv 中值滤波{cv2.medianBlur(src, ksize)}的用法
Jun 05 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
一些花式咖啡的配方
2021/03/03 冲泡冲煮
php 常用类汇总 推荐收藏
2010/05/13 PHP
php 注释规范
2012/03/29 PHP
php输出xml必须header的解决方法
2014/10/17 PHP
浅谈PHP Cookie处理函数
2016/06/10 PHP
PHP微信模板消息操作示例
2017/06/29 PHP
使用vs code编辑调试php配置的方法
2019/01/29 PHP
jquery插件之easing 动态菜单
2010/08/21 Javascript
jquery实现翻动fadeIn显示的方法
2015/03/05 Javascript
javascript实现画不相交的圆
2015/04/07 Javascript
JS中的THIS和WINDOW.EVENT.SRCELEMENT详解
2015/05/25 Javascript
微信jssdk在iframe页面失效问题的解决措施
2016/03/03 Javascript
js 定义对象数组(结合)多维数组方法
2016/07/27 Javascript
Jquery组件easyUi实现选项卡切换示例
2016/08/23 Javascript
js实现购物车功能
2018/06/12 Javascript
koa router 多文件引入的方法示例
2019/05/22 Javascript
在layui.use 中自定义 function 的正确方法
2019/09/16 Javascript
jQuery实现简易QQ聊天框
2020/02/10 jQuery
javascript设计模式 ? 访问者模式原理与用法实例分析
2020/04/26 Javascript
python中assert用法实例分析
2015/04/30 Python
python 把数据 json格式输出的实例代码
2016/10/31 Python
python去除空格和换行符的实现方法(推荐)
2017/01/04 Python
Python实现的随机森林算法与简单总结
2018/01/30 Python
使用python生成目录树
2018/03/29 Python
python  Django中的apps.py的目的是什么
2018/10/15 Python
python 读取数据库并绘图的实例
2019/12/03 Python
浅谈pandas.cut与pandas.qcut的使用方法及区别
2020/03/03 Python
自定义Django默认的sitemap站点地图样式
2020/03/04 Python
HTML5页面音视频在微信和app下自动播放的实现方法
2016/10/20 HTML / CSS
使用useBean标志初始化BEAN时如何接受初始化参数
2012/02/11 面试题
购房意向书范本
2014/04/01 职场文书
国家机关领导干部民主生活会对照检查材料思想汇报
2014/09/17 职场文书
民事诉讼代理委托书
2014/10/08 职场文书
龙潭大峡谷导游词
2015/02/10 职场文书
2016党员党章学习心得体会
2016/01/14 职场文书
2019关于垃圾分类处理的调查报告
2019/12/26 职场文书