封装带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连接的,那需要通过中间远 ...
随机推荐
- Java并发编程之线程池及示例
1.Executor 线程池顶级接口.定义方法,void execute(Runnable).方法是用于处理任务的一个服务方法.调用者提供Runnable 接口的实现,线程池通过线程执行这个 Runn ...
- asp.net网站部署在云服务器windows server 2008上
搭建一个网站需要以下4个准备: 1.域名解析 2.(云)服务器 3.数据库 4.网站代码 其中1可以可以去DNSPOD申请,同时需要进行备案,在上面就都可以完成.2用的是阿里云服务器windows s ...
- 转:Java Web 项目发布到Tomcat中三种部署方法
首先整理项目文件,文件内包含jsp.js等和class编译后的文件及lib包,如: 第一种方法:在tomcat中的conf目录中,在server.xml中的,<host/>节点中添加: ...
- 转载-对于Python中@property的理解和使用
原文链接:https://blog.csdn.net/u013205877/article/details/77804137 重看狗书,看到对User表定义的时候有下面两行 @property def ...
- web开发:形变、表格及多行文本操作
一.2d形变 二.动画 三.表格 四.多个文本垂直居中 五.小米形变案例 一.2d形变 /*1.形变参考点: 三轴交界点*/transform-origin: x轴坐标 y轴坐标; /*2.旋转 ro ...
- Hadoop_14_MapReduce框架结构及其运行流程
1.MapReduce原理篇 Mapreduce是一个分布式运算程序的编程框架,是用户开发“基于hadoop的数据分析应用”的核心框架: Mapreduce核心功能是将用户编写的业务逻辑代码和自带默认 ...
- 基于C++11的100行实现简单线程池
基于C++11的100行实现简单线程池 1 线程池原理 线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务.线程池线程都是后台线程.每个线程都使用默认的堆栈大小, ...
- String特性之 “字符串驻留池”
1. 字符串驻留池,就是一块与堆区并行的存放字符串对象的内存区,JVM的驻留池机制规定: 在池中创建一个String对象,第二行会先在池中寻找是否有值与"abc"相同的String ...
- 5.caffe图片分类流程
一次创建下列文件: 1,create_txt.sh (create_filelist.sh) 2,create_lmdb.sh 3,make_mean.sh 4,train.prototxt+val. ...
- Word2Vec详解
Word2Vec详解 word2vec可以在百万数量级的词典和上亿的数据集上进行高效地训练:其次,该工具得到的训练结果--词向量(word embedding),可以很好地度量词与词之间的相似性.随着 ...