对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图像灰度变换及图像数组操作
Jan 27 Python
浅谈python为什么不需要三目运算符和switch
Jun 17 Python
python类:class创建、数据方法属性及访问控制详解
Jul 25 Python
Python内建函数之raw_input()与input()代码解析
Oct 26 Python
手把手教你用python抢票回家过年(代码简单)
Jan 21 Python
Flask解决跨域的问题示例代码
Feb 12 Python
python将.ppm格式图片转换成.jpg格式文件的方法
Oct 27 Python
pygame游戏之旅 载入小车图片、更新窗口
Nov 20 Python
对python中的argv和argc使用详解
Dec 15 Python
python获取指定日期范围内的每一天,每个月,每季度的方法
Aug 08 Python
python 实现aes256加密
Nov 27 Python
Pytorch之扩充tensor的操作
Mar 04 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
PH P5.2至5.5、5.6的新增功能详解
2014/07/14 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
tp5递归 无限级分类详解
2019/10/18 PHP
laravel邮件发送的实现代码示例
2020/01/31 PHP
JS中简单的实现像C#中using功能(有源码下载)
2007/01/09 Javascript
js 获取input点选按钮的值的方法
2014/04/14 Javascript
在AngularJS中使用AJAX的方法
2015/06/17 Javascript
Webpack 实现 AngularJS 的延迟加载
2016/03/02 Javascript
jQuery多级联动下拉插件chained用法示例
2016/08/20 Javascript
JavaScript 获取元素在父节点中的下标(推荐)
2017/06/28 Javascript
如何理解Vue的作用域插槽的实现原理
2017/08/19 Javascript
js禁止浏览器页面后退功能的实例(推荐)
2017/09/01 Javascript
jQuery实现的页面遮罩层功能示例【测试可用】
2017/10/14 jQuery
浅谈vue中.vue文件解析流程
2018/04/24 Javascript
vue-cli3.0使用及部分配置详解
2018/08/29 Javascript
vue-cli中实现响应式布局的方法
2021/03/02 Vue.js
Python pass 语句使用示例
2014/03/11 Python
python每隔N秒运行指定函数的方法
2015/03/16 Python
django限制匿名用户访问及重定向的方法实例
2018/02/07 Python
python读取LMDB中图像的方法
2018/07/02 Python
Python基础之文件读取的讲解
2019/02/16 Python
python读取Kafka实例
2019/12/23 Python
python 实现分组求和与分组累加求和代码
2020/05/18 Python
django ORM之values和annotate使用详解
2020/05/19 Python
韩国休闲女装品牌网站:ANAIS
2016/08/24 全球购物
Wolford法国官网:奥地利奢侈内衣品牌
2020/08/11 全球购物
北承题目(C++)
2012/05/16 面试题
护理专业毕业生自我鉴定
2013/10/08 职场文书
企业门卫岗位职责
2013/12/12 职场文书
特色蛋糕店创业计划书
2014/01/28 职场文书
物理专业本科生自荐信
2014/01/30 职场文书
初中考试作弊检讨书
2014/02/01 职场文书
人力资源本科毕业生求职信
2014/06/04 职场文书
中职毕业生自我鉴定范文(3篇)
2014/09/28 职场文书
运动会通讯稿100字
2015/07/20 职场文书
六年级数学教学反思
2016/02/16 职场文书