对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 pdb调试方法分享
Jan 21 Python
Python魔术方法详解
Feb 14 Python
python字典基本操作实例分析
Jul 11 Python
Python中的getopt函数使用详解
Jul 28 Python
解决Linux系统中python matplotlib画图的中文显示问题
Jun 15 Python
Python 忽略warning的输出方法
Oct 18 Python
Django配置文件代码说明
Dec 04 Python
python实现布隆过滤器及原理解析
Dec 08 Python
在Pytorch中计算卷积方法的区别详解(conv2d的区别)
Jan 03 Python
详细分析Python collections工具库
Jul 16 Python
Python3合并两个有序数组代码实例
Aug 11 Python
Python自动化实战之接口请求的实现
May 30 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
php连接mysql数据库代码
2009/03/10 PHP
php基础教程 php内置函数实例教程
2012/08/21 PHP
分享自定义的几个PHP功能函数
2015/04/15 PHP
php中 $$str 中 "$$" 的详解
2015/07/06 PHP
PHP7如何开启Opcode打造强悍性能详解
2018/05/11 PHP
Thinkphp5.0框架的Db操作实例分析【连接、增删改查、链式操作等】
2019/10/11 PHP
js实现GridView单选效果自动设置交替行、选中行、鼠标移动行背景色
2010/05/27 Javascript
jQuery点击自身以外地方关闭弹出层的简单实例
2013/12/24 Javascript
用Jquery.load载入页面后样式没了页面混乱的解决方法
2014/10/20 Javascript
jquery常用方法及使用示例汇总
2014/11/08 Javascript
jQuery中的ajax async同步和异步详解
2015/09/29 Javascript
理解javascript中Map代替循环
2016/02/26 Javascript
JavaScript程序中的流程控制语句用法总结
2016/05/23 Javascript
AngularJS 依赖注入详解及示例代码
2016/08/17 Javascript
微信小程序入门教程
2016/11/18 Javascript
Bootstrap组件之下拉菜单,多级菜单及按钮布局方法实例
2017/05/25 Javascript
jQuery ajax动态生成table功能示例
2017/06/14 jQuery
简单谈谈axios中的get,post方法
2017/06/25 Javascript
jquery版轮播图效果和extend扩展
2017/07/18 jQuery
jQuery easyui datagird编辑行删除行功能的实现代码
2018/09/20 jQuery
微信提示 在浏览器打开 效果实现过程解析
2019/09/10 Javascript
Vue 用Vant实现时间选择器的示例代码
2019/10/25 Javascript
Python 2与Python 3版本和编码的对比
2017/02/14 Python
python3 sleep 延时秒 毫秒实例
2020/05/04 Python
Python实现一个优先级队列的方法
2020/07/31 Python
通俗易懂了解Python装饰器原理
2020/09/17 Python
Python中三维坐标空间绘制的实现
2020/09/22 Python
python如何对链表操作
2020/10/10 Python
基于HTML5 Canvas 实现商场监控实例详解
2017/11/20 HTML / CSS
营销专业应届生求职信
2013/11/26 职场文书
仓库主管的岗位职责
2013/12/04 职场文书
党风廉政承诺书
2014/03/27 职场文书
学习党的群众路线对照检查材料
2014/09/29 职场文书
2015年酒店工作总结
2015/04/28 职场文书
环境保护宣传标语大全!
2019/06/28 职场文书
如何用JavaScript学习算法复杂度
2021/04/30 Javascript