封装带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连接的,那需要通过中间远 ...
随机推荐
- @ComponentScan注解及其XML配置
开发中会经常使用包扫描,只要标注了@Controller.@Service.@Repository,@Component 注解的类会自动加入到容器中,ComponentScan有注解和xml配置两种方 ...
- CDH5.16.1的agent启动报错:ERROR Error, CM server guid updated, expected d9bcadb4-f983-41b8-a667-66760f47bc91, received a67f5efa-8473-4f6a-94d6-231d1f432ef0
1 详细错误 0/Oct/2019 14:56:13 +0000] 28577 MainThread agent ERROR Error, CM server guid updated, expect ...
- python 判断数据类型及释疑
Python 判断数据类型有type和isinstance 基本区别在于: type():不会认为子类是父类 isinstance():会认为子类是父类类型 class Color(object): ...
- JSON 语法 数据格式
我们先来看下w3cschool对json的定义: JSON:JavaScript 对象表示法(JavaScript Object Notation). JSON 是存储和交换文本信息的语法.类似 XM ...
- appium连接Android真机,并调试
Android真机:华为pad2 Android和Windows连接同一个局域网 连接USB Android机设置: 打开USB调试 cmd>adb devices,显示Android序列号 , ...
- java实现简单的单点登录 (转)
摘要:单点登录(SSO)的技术被越来越广泛地运用到各个领域的软件系统当中.本文从业务的角度分析了单点登录的需求和应用领域:从技术本身的角度分析了单点登录技术的内部机制和实现手段,并且给出Web-SSO ...
- 在js中获取 input checkbox里选中的多个值
思路:利用name属性值获取checkbox对象,然后循环判断checked属性(true表示被选中,false表示未选中).下面进行实例演示: 1.html中展示: <input type=& ...
- POI做题笔记
POI2011 Conspiracy (2-SAT) Description \(n\leq 5000\) Solution 发现可拆点然后使用2-SAT做,由于特殊的关系,可以证明每次只能交换两个集 ...
- Redis:RedisHelper(5)
/// <summary> /// Redis 助手 /// </summary> public class RedisHelper { /// <summary> ...
- javascript内置对象:Date
JavaScript内置函数:Date时间<script> var today=new Date(); weeks=["日","一",& ...