对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 相关文章推荐
详解python3实现的web端json通信协议
Dec 29 Python
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
Jul 20 Python
Python使用sorted排序的方法小结
Jul 28 Python
Python实现的将文件每一列写入列表功能示例【测试可用】
Mar 19 Python
Python中list查询及所需时间计算操作示例
Jun 21 Python
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
Dec 24 Python
python三方库之requests的快速上手
Mar 04 Python
Python将列表数据写入文件(txt, csv,excel)
Apr 03 Python
Python @property装饰器原理解析
Jan 22 Python
Python3.7黑帽编程之病毒篇(基础篇)
Feb 04 Python
无需压缩软件,用python帮你操作压缩包
Aug 17 Python
Python机器学习之基础概述
May 19 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原理的opcodes(操作码)
2010/10/26 PHP
PHP新手用的Insert和Update语句构造类
2012/03/31 PHP
PHP 获取 ping 时间的实现方法
2017/09/29 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
PHP实现数组根据某个单元字段排序操作示例
2018/08/01 PHP
return false;和e.preventDefault();的区别
2010/07/11 Javascript
JavaScript高级程序设计 阅读笔记(十七) js事件
2012/08/14 Javascript
原始XMLHttpRequest方法详情回顾
2013/11/28 Javascript
Bootstrap每天必学之级联下拉菜单
2016/03/27 Javascript
js 调用百度分享功能
2017/02/27 Javascript
Bootstrap响应式表格详解
2017/05/23 Javascript
JS库之Particles.js中文开发手册及参数详解
2017/09/13 Javascript
js用类封装pop弹窗组件
2017/10/08 Javascript
vue引入js数字小键盘的实现代码
2018/05/14 Javascript
node.js部署之启动后台运行forever的方法
2018/05/23 Javascript
JS实现监控微信小程序的原理
2018/06/15 Javascript
微信小程序监听用户登录事件的实现方法
2019/11/11 Javascript
基于js判断浏览器是否支持webGL
2020/04/18 Javascript
Python httplib,smtplib使用方法
2008/09/06 Python
python3学习笔记之多进程分布式小例子
2018/02/13 Python
利用pyshp包给shapefile文件添加字段的实例
2019/12/06 Python
Django 批量插入数据的实现方法
2020/01/12 Python
Python3操作MongoDB增册改查等方法详解
2020/02/10 Python
如何理解python面向对象编程
2020/06/01 Python
基于django和dropzone.js实现上传文件
2020/11/24 Python
python 多线程爬取壁纸网站的示例
2021/02/20 Python
html5记忆翻牌游戏实现思路及代码
2013/07/25 HTML / CSS
美国户外运动商店:Sun & Ski
2018/08/23 全球购物
FORZIERI福喜利中国官网:奢侈品购物梦工厂
2019/05/03 全球购物
幼儿园教师培训方案
2014/02/04 职场文书
一年级学生评语大全
2014/04/21 职场文书
2014年国庆节演讲稿
2014/09/02 职场文书
留学推荐信(中英文版)
2015/03/26 职场文书
2015年护士工作总结范文
2015/03/31 职场文书
python实现三次密码验证的示例
2021/04/29 Python
python 实现图与图之间的间距调整subplots_adjust
2021/05/21 Python