对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实现监控linux性能及进程消耗性能的方法
Jul 25 Python
讲解Python中的标识运算符
May 14 Python
python相似模块用例
Mar 04 Python
python模块导入的细节详解
Dec 10 Python
python从入门到精通 windows安装python图文教程
May 18 Python
Python中IP地址处理IPy模块的方法
Aug 16 Python
Django1.11配合uni-app发起微信支付的实现
Oct 12 Python
python matplotlib 绘图 和 dpi对应关系详解
Mar 14 Python
python topk()函数求最大和最小值实例
Apr 02 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
Apr 28 Python
python如何使用代码运行助手
Jul 03 Python
Python实现简繁体转换
Jun 07 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
使用 eAccelerator加速PHP代码的方法
2007/09/30 PHP
php中导出数据到excel时数字变为科学计数的解决方法
2013/02/03 PHP
php上传大文件失败的原因及应对策略
2015/10/20 PHP
PHP多进程之pcntl_fork的实例详解
2017/10/15 PHP
Yii框架使用PHPExcel导出Excel文件的方法分析【改进版】
2019/07/24 PHP
input输入框的自动匹配(原生代码)
2013/03/19 Javascript
js判断一个字符串是否包含一个子串的方法
2015/01/26 Javascript
javascript判断移动端访问设备并解析对应CSS的方法
2015/02/05 Javascript
Bootstrap每天必学之缩略图与警示窗
2015/11/29 Javascript
AngularJS基础 ng-model 指令详解及示例代码
2016/08/02 Javascript
js for循环倒序输出数组元素的实例
2017/03/01 Javascript
less简单入门(CSS 预处理语言)
2017/03/08 Javascript
Javascript ES6中数据类型Symbol的使用详解
2017/05/02 Javascript
js array数组对象操作方法汇总
2019/03/18 Javascript
vue pages 多入口项目 + chainWebpack 全局引用缩写说明
2020/09/21 Javascript
uni-app实现获取验证码倒计时功能
2020/11/01 Javascript
[43:14]Liquid vs Optic 2018国际邀请赛淘汰赛BO3 第二场 8.21
2018/08/22 DOTA
python抓取网页图片示例(python爬虫)
2014/04/27 Python
浅析Python中元祖、列表和字典的区别
2016/08/17 Python
python使用wxpy实现微信消息防撤回脚本
2019/04/29 Python
python调用pyaudio使用麦克风录制wav声音文件的教程
2019/06/26 Python
python3使用腾讯企业邮箱发送邮件的实例
2019/06/28 Python
python异步实现定时任务和周期任务的方法
2019/06/29 Python
Python3自定义http/https请求拦截mitmproxy脚本实例
2020/05/11 Python
基于HTML5的WebGL经典3D虚拟机房漫游动画
2017/11/15 HTML / CSS
财务总监管理职责范文
2014/03/09 职场文书
政风行风评议心得体会
2014/10/21 职场文书
12.4全国法制宣传日活动总结
2014/11/01 职场文书
2015年教师党员公开承诺书
2015/01/22 职场文书
南极大冒险观后感
2015/06/05 职场文书
2015秋季运动会通讯稿
2015/07/18 职场文书
高三物理教学反思
2016/02/20 职场文书
2016年“我们的节日·清明节”活动总结
2016/04/01 职场文书
如何使用CocosCreator对象池
2021/04/14 Javascript
基于Pygame实现简单的贪吃蛇游戏
2021/12/06 Python
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers