封装带SSH跳板机的REDIS
一、封装ssh的redis
二、setting的配置
三、应用示例
import redis
from sshtunnel import SSHTunnelForwarder
from conf.setting import REDIS_online, REDIS_dev class MyRedis(): def __del__(self):
self.server.close() def __init__(self,host,ip,ssh_username,ssh_password,db,password):
#构造shh-redis链接,使用setting配置文件
try:
server = SSHTunnelForwarder(
ssh_address_or_host=(host, 22),
ssh_username=ssh_username,
ssh_password=ssh_password,
remote_bind_address=(ip, 6379)
)
self.server = server
self.server.daemon_forward_servers = True #不加server关闭不了
self.server.start()
pool = redis.ConnectionPool(host='127.0.0.1', port=self.server.local_bind_port, password=password, db=db,
decode_responses=True)
redis_connect = redis.Redis(connection_pool=pool)
self.r = redis_connect
except Exception as e:
print('redis连接失败,错误信息%s'%e) def str_get(self,k):
res = self.r.get(k)
return res # def str_set(self,k,v,time=None):
# self.r.set(k,v,time) # def delete(self,k):
# tag = self.r.exists(k) #判断这个key是否存在
# if tag:
# self.r.delete(k)
# print('删除成功')
# else:
# print('这个key不存在')
# def hash_get(self,name,k):
# res = self.r.hget(name,k)
# if res:
# return res.decode()
# def hash_set(self,name,k,v):
# self.r.hset(name,k,v)
# def hash_getall(self,name):
# data = {}
# # {b'12': b'1212', b'3': b'sdad', b'4': b'asdadsa'}
# res = self.r.hgetall(name)
# if res:
# for k,v in res.items():
# k = k.decode()
# v = v.decode()
# data[k]=v
# return data
# def hash_del(self,name,k):
# res = self.r.hdel(name,k)
# if res:
# print('删除成功')
# return 1
# else:
# print('删除失败,该key不存在')
# return 0 # @property
# def clean_redis(self):
# self.r.flushdb() #清1空redis
# print('清空redis成功!')
# return 0 # my = MyRedis(**REDIS_dev) # if __name__ == '__main__':
# my = MyRedis(**REDIS_online)
# vcode = my.str_get('xxx:vcode:xxx:1xx0000xxxx')
# print(vcode)
REDIS_online = {
'host': '1xx.xxx.xxx.xxx',
'ip' : '1xx.xx.xx.xx',
'ssh_username' : 'aaa',
'ssh_password': 'xxx',
'db':2,
'password' : 'vvvv'
}
import unittest,requests
from sshtunnel import SSHTunnelForwarder
from lib.my_redis import MyRedis
# from lib.my_sql import my_sql
from conf.setting import BASE_URL,REDIS_online
from urllib.parse import urljoin
from lib.my_request import MyRequest
from lib.tools import login class Pt_xxx_xxx(unittest.TestCase):
def test_c_xxx(self):
'''xxxxx'''
url = '/xxx/xxx/messageCode'
real_url = urljoin(BASE_URL, url) data = {'xx': 'xxx%2C2',
'xx': 'xxxA'
}
res = MyRequest.get(real_url, data)
if res.get('msg') == '发xxxxxx,xxx':
self.assertEqual(401, res.get('code'), msg = '发xxxx==>失败url:%s 失败data:%s'%(real_url,data) )
else:
self.assertEqual(200, res.get('code'), msg='发xxxx==>失败url:%s 失败data:%s'%(real_url,data) ) def test_c_xxxx(self):
'''xxx'''
url = '/xx/xxxx/messageCode'
real_url = urljoin(BASE_URL, url)
my = MyRedis(**REDIS_online)
vcode = my.str_get('xx:xx:xxx:1xx000xxx34') data = {'xx': 'xx%2C2',
'xxx': 2,
'vcode': vcode
}
res = MyRequest.get(real_url, data)
self.assertEqual(200, res.get('code'), msg='获取xx败==>失败url:%s 失败data:%s' % (real_url, data)) if __name__ == '__main__':
c=xxx()
c.test_c_xx()
c.test_c_xx()
应用
封装带SSH跳板机的REDIS的更多相关文章
- 封装带SSH跳板机的MYSQL
一.封装带SSH跳板机的MYSQL 二.配置settting import pymysql from sshtunnel import SSHTunnelForwarder class MyDb(ob ...
- Jmeter JDBC请求-----数据库读取数据进行参数化 通过SSH跳板机连接数据库
前期准备: jdbc驱动:mysql-connector-java-5.1.7-bin.jar Jmeter 要链接MySQL数据库,首选需要下载mysql jdbc驱动包(注:驱动包的版本一定要与你 ...
- mysql ssh 跳板机(堡垒机???)连接服务器
跳板机(Jump Server),也称堡垒机,是一类可作为跳板批量操作远程设备的网络设备,是系统管理员或运维人员常用的操作平台之一. 正常的登录流程 使用ssh命令登录跳板机: 登录跳板机成功后,在跳 ...
- 13、ssh跳板机
13.1.前提条件: 1.跳板机服务器和其它服务器建立了ssh秘钥登录: 2.目前的环境: (1)各服务器上都建立了lc用户,并给于sudo (lc ALL= NOPASSWD:ALL )权限,lc就 ...
- ssh 跳板机部署
1.首先创建存放日志的文件夹并开放读写权限 mkdir /var/log/jump/ chmod -R 777 /var/log/jump/ 2.将原有ssh程序修改为另外 ...
- 使用pycharm、跳板机连接内网服务器
使用pycharm.跳板机连接内网服务器 接手实验室服务器后,大部分同学在GPU集群上跑程序都是直接在ssh界面上跑,这里想着通过pycharm通过跳板机来连接服务器. 总体就是实验室服务器仅限内网访 ...
- ssh远程登陆脚本(带跳板机)
mac自带的终端不太好用,被推荐了一个iterm2的终端替代工具,确实比自带的终端好用不少.下面记录下通过脚本一键远程登录的过程: 下载地址:http://m4.pc6.com/xuh3/iTerm2 ...
- ssh配置跳板机-带密钥
ssh配置跳板机堡垒机带密钥 ~/.ssh/config 添加以下配置: # 跳板机地址 Host jumper HostName jumper.com User jumper port 23333 ...
- jmeter连接配置带跳板机(SSH)的mysql服务器
jmeter连接配置mysql服务器时,如果数据库服务器没有通过ssh连接,则只需要配置相应的jdbc参数就可以了,即请求域名或ip地址:3306,如果数据库服务器是通过SSH连接的,那需要通过中间远 ...
随机推荐
- C8051F环境搭建
https://www.silabs.com/ USB调试器 U-EC6: 支持JTAG模式.C2模式 JTAG接口定义: 适用型号C8051F00x C8051F01x C8051F02x C805 ...
- Saladict 沙拉查词
Saladict 沙拉查词 鼠标中键呼出 整合了有道翻译.百度翻译.必应翻译.腾讯翻译君. Google 翻译和彩云小译等,自动发音,可配置词典. 说明文档:https://github.com/cr ...
- 9.SpringMVC注解式开发-处理器的请求映射规则的定义
1.对请求URI的命名空间的定义 @RequestMapping的value属性用于定义所匹配请求的URI.但对于注解在方法上和注解在类上, 其value 属性 所指定的URI,意义是不同的 一个@C ...
- win10 增加一个新磁盘
1.右键我的电脑,选择管理 可以看到C盘的空间相比较大,拿出来250G的空间做成E盘 2.选择OS(C:),右键,压缩卷,请稍后,点击压缩 3.此刻会看到,有一块黑色区域就是新建的未分配空间,这时我们 ...
- PHP点击按钮拷贝
一.PHP中点击按钮拷贝文本,我一个页面有多个按钮,相同颜色的标注代表了相同的列或ID 二.这是HTML代码 <tr> <td>直播流地址(延时60秒)</td> ...
- Delphi 定义线程对象
- Django阶段总结与Ajax
一.路由控制 二.视图层 三.模板层 四.模型层.单表操作.多表操作 五.什么是ajax 一.路由控制 补充点(什么是web应用?) 网站:BS架构应用程序:B是浏览器 S:server(实现了ws ...
- SQL Server 元数据分类
SQL Server 中维护了一组表用于存储 SQL Server 中所有的对象.数据类型.约束条件.配置选项.可用资源等信息,这些信息称为元数据信息(Metadata),而这些表称为系统基础表(Sy ...
- xgboost&lightgbm调参指南
本文重点阐述了xgboost和lightgbm的主要参数和调参技巧,其理论部分可见集成学习,以下内容主要来自xgboost和LightGBM的官方文档. xgboost Xgboost参数主要分为三大 ...
- setup elk with docker-compose
version: '2' services: elasticsearch: image: docker.calix.local:18080/docker-elasticsearch:6.2.2-1 c ...