对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和shell实现的校验IP地址合法性脚本分享
Oct 23 Python
用Python制作简单的钢琴程序的教程
Apr 01 Python
Python中IPYTHON入门实例
May 11 Python
python检查字符串是否是正确ISBN的方法
Jul 11 Python
python实现关键词提取的示例讲解
Apr 28 Python
python mac下安装虚拟环境的图文教程
Apr 12 Python
Python在cmd上打印彩色文字实现过程详解
Aug 07 Python
Python any()函数的使用方法
Oct 28 Python
python 中的[:-1]和[::-1]的具体使用
Feb 13 Python
Python可变对象与不可变对象原理解析
Feb 25 Python
Django ORM判断查询结果是否为空,判断django中的orm为空实例
Jul 09 Python
python -v 报错问题的解决方法
Sep 15 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数组遍历知识汇总(包含遍历方法、数组指针操作函数、数组遍历测速)
2014/07/05 PHP
Laravel 5.3 学习笔记之 安装
2016/08/28 PHP
PHP获取真实客户端的真实IP
2017/03/07 PHP
PHP实现动态删除XML数据的方法示例
2018/03/30 PHP
利用jQuery插件扩展识别浏览器内核与外壳的类型和版本的实现代码
2011/10/22 Javascript
document.getElementBy("id")与$("#id")有什么区别
2013/09/22 Javascript
JavaScript+CSS无限极分类效果完整实现方法
2015/12/22 Javascript
jQuery实现的指纹扫描效果实例(附演示与demo源码下载)
2016/01/26 Javascript
jQuery中队列queue()函数的实例教程
2016/05/03 Javascript
一个简单的JavaScript Map实例(分享)
2016/08/03 Javascript
javascript 分号总结及详细介绍
2016/09/24 Javascript
jquery PrintArea 实现票据的套打功能(代码)
2017/03/17 Javascript
Javascript es7中比较实用的两个方法示例
2017/07/21 Javascript
微信小程序 五星评分的实现实例
2017/08/04 Javascript
jquery animate动画持续运动的实例
2017/11/29 jQuery
vue+vuex+axios实现登录、注册页权限拦截
2018/03/09 Javascript
layerUI下的绑定事件实例代码
2018/08/17 Javascript
angular异步验证防抖踩坑实录
2019/12/01 Javascript
Node.js API详解之 assert模块用法实例分析
2020/05/26 Javascript
[43:32]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
Python读写Excel文件方法介绍
2014/11/22 Python
进一步探究Python中的正则表达式
2015/04/28 Python
Python计算字符宽度的方法
2016/06/14 Python
linecache模块加载和缓存文件内容详解
2018/01/11 Python
python实现K近邻回归,采用等权重和不等权重的方法
2019/01/23 Python
python 写一个文件分发小程序
2020/12/05 Python
html5 canvas 简单画板实现代码
2012/01/05 HTML / CSS
巴西葡萄酒商店:Divvino
2020/02/22 全球购物
2014年清明节寄语
2014/04/03 职场文书
我的中国梦演讲稿初中篇
2014/08/19 职场文书
班主任师德师风自我剖析材料
2014/10/02 职场文书
六一儿童节主持开场白
2015/05/28 职场文书
团拜会主持词
2015/07/04 职场文书
vue前端工程的搭建
2021/03/31 Vue.js
python识别围棋定位棋盘位置
2021/07/26 Python
我国拿下天问一号火星着陆区附近 22 个地理实体命名:平乐、西柏坡、古田、漠河等
2022/04/29 数码科技