对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 获取进程pid号的方法
Mar 10 Python
python使用PyCharm进行远程开发和调试
Nov 02 Python
Python使用Dijkstra算法实现求解图中最短路径距离问题详解
May 16 Python
Python在图片中插入大量文字并且自动换行
Jan 02 Python
PYQT5实现控制台显示功能的方法
Jun 25 Python
如何运行.ipynb文件的图文讲解
Jun 27 Python
python爬虫-模拟微博登录功能
Sep 12 Python
TensorFlow梯度求解tf.gradients实例
Feb 04 Python
python3 正则表达式基础廖雪峰
Mar 25 Python
Python爬虫过程解析之多线程获取小米应用商店数据
Nov 14 Python
Django 如何实现文件上传下载
Apr 08 Python
Python基础之数据结构详解
Apr 28 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的历史和优缺点
2006/10/09 PHP
在windows iis5下安装php4.0+mysql之我见
2006/10/09 PHP
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
2014/06/23 PHP
php中的异常和错误浅析
2017/05/03 PHP
ThinkPHP5&5.1框架关联模型分页操作示例
2019/08/03 PHP
jQuery UI Dialog 创建友好的弹出对话框实现代码
2012/04/12 Javascript
移动Web中图片自适应的两种JavaScript解决方法
2015/06/18 Javascript
举例讲解JavaScript中将数组元素转换为字符串的方法
2015/10/25 Javascript
基于jQuery实现的Ajax 验证用户名唯一性实例代码
2017/06/28 jQuery
Nodejs进阶之服务端字符编解码和乱码处理
2017/09/04 NodeJs
nodejs爬虫初试superagent和cheerio
2018/03/05 NodeJs
Vue渲染过程浅析
2019/03/14 Javascript
Bootstarp在pycharm中的安装及简单的使用方法
2019/04/19 Javascript
使用vue实现各类弹出框组件
2019/07/03 Javascript
微信小程序学习总结(五)常见问题实例小结
2020/06/04 Javascript
[09:43]DOTA2每周TOP10 精彩击杀集锦vol.5
2014/06/25 DOTA
python计算书页码的统计数字问题实例
2014/09/26 Python
Python Web框架Flask中使用百度云存储BCS实例
2015/02/08 Python
win与linux系统中python requests 安装
2016/12/04 Python
利用信号如何监控Django模型对象字段值的变化详解
2017/11/27 Python
Python学习笔记之pandas索引列、过滤、分组、求和功能示例
2019/06/03 Python
Python单元测试工具doctest和unittest使用解析
2019/09/02 Python
Pytorch DataLoader 变长数据处理方式
2020/01/08 Python
python如何实现DES加密
2020/09/21 Python
Python实现定时监测网站运行状态的示例代码
2020/09/30 Python
青年创业培训欢迎词
2014/01/08 职场文书
12月红领巾广播稿
2014/02/13 职场文书
2014年迎新年联欢会活动策划方案
2014/02/26 职场文书
2015年社区妇联工作总结
2015/04/21 职场文书
农村党支部承诺书
2015/04/30 职场文书
欢送领导祝酒词
2015/08/12 职场文书
高一地理教学工作总结
2015/08/12 职场文书
教师法制教育培训学习心得体会
2016/01/14 职场文书
《好妈妈胜过好老师》:每个孩子的优秀都是有源头的
2020/01/03 职场文书
详解MySQL 用户权限管理
2021/04/20 MySQL
再谈python_tkinter弹出对话框创建
2022/03/20 Python