对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中使用第三方库xlutils来追加写入Excel文件示例
Apr 05 Python
Python爬虫:通过关键字爬取百度图片
Feb 17 Python
详解python的sorted函数对字典按key排序和按value排序
Aug 10 Python
浅析python3字符串格式化format()函数的简单用法
Dec 07 Python
Python 输出时去掉列表元组外面的方括号与圆括号的方法
Dec 24 Python
python过滤中英文标点符号的实例代码
Jul 15 Python
Python 进程操作之进程间通过队列共享数据,队列Queue简单示例
Oct 11 Python
基于python实现蓝牙通信代码实例
Nov 19 Python
新手入门学习python Numpy基础操作
Mar 02 Python
使用Python+selenium实现第一个自动化测试脚本
Mar 17 Python
python画环形图的方法
Mar 25 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制作简单的内容采集器的原理分析
2008/10/01 PHP
使用php将某个目录下面的所有文件罗列出来的方法详解
2013/06/21 PHP
PHP系统命令函数使用分析
2013/07/05 PHP
Yii框架表单模型和验证用法
2016/05/20 PHP
PHP convert_uudecode()函数讲解
2019/02/14 PHP
js同时按下两个方向键
2007/12/01 Javascript
基于jQuery的淡入淡出可自动切换的幻灯插件
2010/08/24 Javascript
JavaScript使用IEEE 标准进行二进制浮点运算产生莫名错误的解决方法
2011/05/28 Javascript
JQuery each打印JS对象的方法
2013/11/13 Javascript
jQuery中animate()方法用法实例
2014/12/24 Javascript
Angular中的Promise对象($q介绍)
2015/03/03 Javascript
jQuery鼠标悬浮链接弹出跟随图片实例代码
2016/01/08 Javascript
js控制div层的叠加简单方法
2016/10/15 Javascript
js生成随机颜色方法代码分享(三种)
2016/12/29 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
2017/02/20 Javascript
微信小程序实现鼠标拖动效果示例
2017/12/01 Javascript
详解在vue-cli项目下简单使用mockjs模拟数据
2018/10/19 Javascript
Koa从零搭建到Api实现项目的搭建方法
2019/07/30 Javascript
使用easyui从servlet传递json数据到前端页面的两种方法
2019/09/05 Javascript
ES5新增数组的实现方法
2020/05/12 Javascript
Python实现多态、协议和鸭子类型的代码详解
2019/05/05 Python
基于sklearn实现Bagging算法(python)
2019/07/11 Python
python实现的生成word文档功能示例
2019/08/23 Python
Python imutils 填充图片周边为黑色的实现
2020/01/19 Python
python中四舍五入的正确打开方式
2021/01/18 Python
日本AOKI官方商城:AOKI西装
2020/06/11 全球购物
小学毕业感言150字
2014/02/05 职场文书
中学生学雷锋活动心得体会
2014/03/10 职场文书
青年志愿者活动总结
2014/04/26 职场文书
委托证明模板
2014/09/16 职场文书
2015年教师节感恩寄语
2015/03/23 职场文书
办公室行政主管岗位职责
2015/04/09 职场文书
运动会主持词大全
2015/07/02 职场文书
拔河比赛队名及霸气口号
2015/12/24 职场文书
《秋天的图画》教学反思
2016/02/19 职场文书
国产动画《万圣街》日语配音版制作决定!
2022/03/20 国漫