一、封装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的更多相关文章

  1. 封装带SSH跳板机的MYSQL

    一.封装带SSH跳板机的MYSQL 二.配置settting import pymysql from sshtunnel import SSHTunnelForwarder class MyDb(ob ...

  2. Jmeter JDBC请求-----数据库读取数据进行参数化 通过SSH跳板机连接数据库

    前期准备: jdbc驱动:mysql-connector-java-5.1.7-bin.jar Jmeter 要链接MySQL数据库,首选需要下载mysql jdbc驱动包(注:驱动包的版本一定要与你 ...

  3. mysql ssh 跳板机(堡垒机???)连接服务器

    跳板机(Jump Server),也称堡垒机,是一类可作为跳板批量操作远程设备的网络设备,是系统管理员或运维人员常用的操作平台之一. 正常的登录流程 使用ssh命令登录跳板机: 登录跳板机成功后,在跳 ...

  4. 13、ssh跳板机

    13.1.前提条件: 1.跳板机服务器和其它服务器建立了ssh秘钥登录: 2.目前的环境: (1)各服务器上都建立了lc用户,并给于sudo (lc ALL= NOPASSWD:ALL )权限,lc就 ...

  5. ssh 跳板机部署

    1.首先创建存放日志的文件夹并开放读写权限       mkdir /var/log/jump/       chmod -R 777 /var/log/jump/   2.将原有ssh程序修改为另外 ...

  6. 使用pycharm、跳板机连接内网服务器

    使用pycharm.跳板机连接内网服务器 接手实验室服务器后,大部分同学在GPU集群上跑程序都是直接在ssh界面上跑,这里想着通过pycharm通过跳板机来连接服务器. 总体就是实验室服务器仅限内网访 ...

  7. ssh远程登陆脚本(带跳板机)

    mac自带的终端不太好用,被推荐了一个iterm2的终端替代工具,确实比自带的终端好用不少.下面记录下通过脚本一键远程登录的过程: 下载地址:http://m4.pc6.com/xuh3/iTerm2 ...

  8. ssh配置跳板机-带密钥

    ssh配置跳板机堡垒机带密钥 ~/.ssh/config 添加以下配置: # 跳板机地址 Host jumper HostName jumper.com User jumper port 23333 ...

  9. jmeter连接配置带跳板机(SSH)的mysql服务器

    jmeter连接配置mysql服务器时,如果数据库服务器没有通过ssh连接,则只需要配置相应的jdbc参数就可以了,即请求域名或ip地址:3306,如果数据库服务器是通过SSH连接的,那需要通过中间远 ...

随机推荐

  1. java进程被OOM干掉问题记录

    异常现象:用户环境部署了一台iserver,访问一阵后,进程没了   分析: 1.bin目录下没有崩溃日志,在tomcat的访问日志里面也没有看到有用的信息.iserver.log里面也没有信息 2. ...

  2. java引用传递,值传递

    2个interger的引用对象传给一个swap方法在方法内部进行交换 1.1 java中方法参数传值方式 java中方法传参数都是值传递的,只不过根据参数的类型是引用类型还是非引用类型 引用类型传递的 ...

  3. 测试clang-format的格式化效果

    我自己写的业余框架已告一段落,主体功能已完成,剩下的就是优化.第一个要优化的,就是代码格式.我一直是用编辑器写代码的,从之前的UltraEdit到notepad++到sublime text,再到现在 ...

  4. sql临时表 通过临时表循环处理数据

    -- 创建临时表 IF OBJECT_ID('tempdb.dbo.#temprecord','U') IS NOT NULL DROP TABLE dbo.#temprecord; GO SELEC ...

  5. 多进程之multiprocessing模块和进程池的实现

    转载:https://www.cnblogs.com/xiaobeibei26/p/6484849.html Python多进程之multiprocessing模块和进程池的实现 1.利用multip ...

  6. dedeampz 套件关于PHP开启curl方法

    php开启curl方法主要用到三个文件libeay32.dll,php_curl.dll,ssleay32.dll 打开dede的安装目录,更改对应版本PHP中的php.ini文件,在 ; exten ...

  7. Delphi 类类型和对象

  8. 【异常】 Could not find Linker 'g++' in system path.

    1 详细异常 FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':az-ex ...

  9. MYSQL安全模式SQL语法需要注意的地方

    MYSQL安全模式 Mysql版本: 背景: 为了避免在执行delete.update将全表数据清空或者覆盖修改,在新项目营销云中开启了mysql的安全模式. 安全模式要求不能对非主键的条件查询做up ...

  10. python+Appium自动化:读取Yaml配置文件

    Yaml简介 Yaml:"Yet Another Markup Language"(是一种标记语言),但为了强调这种语言以数据做为中心,而不是以标记语言为重点,而用反向缩略语重命名 ...