封装带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连接的,那需要通过中间远 ...
随机推荐
- 如何用Visual Studio Code远程调试运行在服务器上的nodejs应用
假设我有一个nodejs应用,运行在AWS - 亚马逊云平台上(Amazone Web Service).我想用本地的Visual Studio Code来远程调试服务器端的nodejs应用. Vis ...
- MySQL开启binlog无法启动ct 10 21:27:31 postfix/pickup[4801]: warning: 6BD991A0039: message has been queue
1 详细异常 ct 10 21:27:31 postfix/pickup[4801]: warning: 6BD991A0039: message has been queue Oct 10 21:2 ...
- HTML5学习:缩略图
HTML代码 <div> <img src="img/pic.png" alt="This is a pic" /> </div& ...
- java8 常用语法小结
// 判空 // 排序 //映射 //序列化
- 学习elasticsearch(一)linux环境搭建(3)——head插件安装
对于5.x的es,head插件不支持 ./elasticearch-plugin install [plugin_name]方式安装. 进入正文 1.首先确保你的机器安装了python,如果没有,请看 ...
- python -m pip install [package] --no-deps
python -m pip install [package] --no-deps 有些 packages 会依赖一些其它的 package,当我们离线安装 whl 的时候,就无法联网下载依赖包,所 ...
- windows配置mysql权限
想要把csv里面的数据导入mysql,报错.用命令 show variables like '%secure%'; : [2019-04-08 17:04:36] [HY000][129 ...
- switch结构
switch结构介绍 switch也属于条件判断的语句 支持多种写法,和if .. else if ...else 结构的功能类似,但是里面的细节需要注意的地方更多 switch基本语法 switch ...
- vscode+TCC快捷编译c语言
1.安装vscode. 2.安装插件tcc.小巧,快速,符合ansi c, 法国大神级别程序员开发的编译器. 3.编写C代码,F10运行,即可得结果,对于验证一些语法很快捷,很方便.只需三步!!
- Bootstrap-轮播图-No.1
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...