对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复制文件的方法实例详解
May 22 Python
Python 通过URL打开图片实例详解
Jun 01 Python
selenium+python截图不成功的解决方法
Jan 30 Python
python调用c++ ctype list传数组或者返回数组的方法
Feb 13 Python
解决python线程卡死的问题
Feb 18 Python
解决Python正则表达式匹配反斜杠''\''问题
Jul 17 Python
Python命令行click参数用法解析
Dec 19 Python
python使用opencv resize图像不进行插值的操作
Jul 05 Python
python 基于opencv 绘制图像轮廓
Dec 11 Python
python 实现全球IP归属地查询工具
Dec 18 Python
python 基于selectors库实现文件上传与下载
Dec 31 Python
TensorFlow2.0使用keras训练模型的实现
Feb 20 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服务器页面间跳转实现方法
2012/08/02 PHP
ThinkPHP关于session的操作方法汇总
2014/07/18 PHP
Fedora下安装php Redis扩展笔记
2014/09/03 PHP
php网页病毒清除类
2014/12/08 PHP
PHP输出一个等腰三角形的方法
2015/05/12 PHP
WordPress主题中添加文章列表页页码导航的PHP代码实例
2015/12/22 PHP
PHP获取网站中各文章的第一张图片的代码示例
2016/05/20 PHP
PHP常用字符串函数小结(推荐)
2018/08/05 PHP
jquery获得页面元素的坐标值实现思路及代码
2013/04/15 Javascript
JavaScript获取客户端计算机硬件及系统等信息的方法
2014/01/02 Javascript
浅析tr的隐藏和显示问题
2014/03/05 Javascript
JavaScript实现函数返回多个值的方法
2015/06/09 Javascript
jQuery Ajax和getJSON获取后台普通json数据和层级json数据用法分析
2016/06/08 Javascript
微信小程序 loading 详解及实例代码
2016/11/09 Javascript
快速理解 JavaScript 中的 LHS 和 RHS 查询的用法
2017/08/24 Javascript
Node.js学习之TCP/IP数据通讯(实例讲解)
2017/10/11 Javascript
fetch 使用及如何接收JS传值
2017/11/11 Javascript
微信小程序如何获取openid及用户信息
2018/01/26 Javascript
JS获取月的第几周和年的第几周实例代码
2018/12/05 Javascript
Vue form表单动态添加组件实战案例
2019/09/02 Javascript
javascript实现点亮灯泡特效示例
2019/10/15 Javascript
VUE渲染后端返回含有script标签的html字符串示例
2019/10/28 Javascript
Python中类似于jquery的pyquery库用法分析
2019/12/02 Python
Python实现隐马尔可夫模型的前向后向算法的示例代码
2019/12/31 Python
用pytorch的nn.Module构造简单全链接层实例
2020/01/14 Python
Python插入Elasticsearch操作方法解析
2020/01/19 Python
python实现字符串和数字拼接
2020/03/02 Python
python如何对链表操作
2020/10/10 Python
CSS3实现多重边框的方法总结
2016/05/31 HTML / CSS
新加坡最佳婴儿用品店:Mamahood.com.sg
2018/08/26 全球购物
团干部培训方案
2014/06/03 职场文书
2014年村委会工作总结
2014/11/24 职场文书
党校团干班培训心得体会
2016/01/06 职场文书
2019XX公司员工考核管理制度!
2019/08/07 职场文书
css position fixed 左右双定位的实现代码
2021/04/29 HTML / CSS
分析Netty直接内存原理及应用
2021/06/14 Java/Android