对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中的With语句
Feb 02 Python
python僵尸进程产生的原因
Jul 21 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
Sep 28 Python
Python爬取当当、京东、亚马逊图书信息代码实例
Dec 09 Python
为什么入门大数据选择Python而不是Java?
Mar 07 Python
对pycharm 修改程序运行所需内存详解
Dec 03 Python
python lxml中etree的简单应用
May 10 Python
Python中字典与恒等运算符的用法分析
Aug 22 Python
jupyter notebook 重装教程
Apr 16 Python
Python+Opencv身份证号码区域提取及识别实现
Aug 25 Python
Python中Selenium模块的使用详解
Oct 09 Python
python中scipy.stats产生随机数实例讲解
Feb 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使用imagick模块实现图片缩放、裁剪、压缩示例
2014/04/17 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
2016/12/21 PHP
Yii2框架控制器、路由、Url生成操作示例
2019/05/27 PHP
laravel实现一个上传图片的接口,并建立软链接,访问图片的方法
2019/10/12 PHP
js中的布尔运算符使用介绍
2013/11/20 Javascript
js实现数字每三位加逗号的方法
2015/02/05 Javascript
js中split和replace的用法实例
2015/02/28 Javascript
javascript 使用for循环时该注意的问题-附问题总结
2015/08/19 Javascript
适用于javascript开发者的Processing.js入门教程
2016/02/24 Javascript
jQuery使用模式窗口实现在主页面和子页面中互相传值的方法
2016/03/01 Javascript
基于JS实现回到页面顶部的五种写法(从实现到增强)
2016/09/03 Javascript
AngularJS执行流程详解
2017/02/17 Javascript
javascript流程控制语句集合
2017/09/18 Javascript
JavaScript设计模式之单例模式简单实例教程
2018/07/02 Javascript
解决vue keep-alive 数据更新的问题
2018/09/21 Javascript
TypeScript基础入门教程之三重斜线指令详解
2018/10/22 Javascript
vue element实现表格合并行数据
2020/11/30 Vue.js
[03:10]2014DOTA2 TI马来劲旅Titan首战告捷目标只是8强
2014/07/10 DOTA
给Python的Django框架下搭建的BLOG添加RSS功能的教程
2015/04/08 Python
python实现TCP服务器端与客户端的方法详解
2015/04/30 Python
在Python的Django框架中显示对象子集的方法
2015/07/21 Python
举例讲解Python中的迭代器、生成器与列表解析用法
2016/03/20 Python
Python如何生成树形图案
2018/01/03 Python
python迭代dict的key和value的方法
2018/07/06 Python
利用Python绘制有趣的万圣节南瓜怪效果
2019/10/31 Python
详解python内置模块urllib
2020/09/09 Python
FirstCry阿联酋儿童和婴儿产品网上购物:FirstCry.ae
2021/02/22 全球购物
如何进行Linux分区优化
2013/02/12 面试题
电子邮箱格式怎么写
2014/01/12 职场文书
家长给孩子的表扬信
2014/01/17 职场文书
幼儿教师培训感言
2014/03/08 职场文书
解放思想演讲稿
2014/09/11 职场文书
党小组考察意见
2015/06/02 职场文书
vue组件的路由高亮问题解决方法
2021/05/11 Vue.js
SQL Server Agent 服务无法启动
2022/04/20 SQL Server
解决IDEA翻译插件Translation报错更新TTK失败不能使用
2022/04/24 Python