随笔分类 -  python 运维开发

摘要:一、连接redis集群 python的redis库是不支持集群操作的,推荐库:redis-py-cluster,一直在维护。还有一个rediscluster库,看GitHub上已经很久没更新了。 安装 连接redis集群 #!/usr/bin/env python # coding: utf-8 f 阅读全文
posted @ 2019-05-23 11:46 肖祥 阅读(3652) 评论(0) 推荐(1) 编辑
摘要:一、需求分析 需要统计出当前数据库的所有数据库名,以及每个用户的授权信息。 获取所有数据库 在mysql里面,使用命令: 就可以获取所有数据库了 获取所有用户 执行命令: 注意:需要排除到默认的用户,比如: 获取用户权限 语法: 比如: 执行输出: 注意:这段信息表示,test用户,对DB01数据库 阅读全文
posted @ 2019-05-21 16:38 肖祥 阅读(1696) 评论(0) 推荐(0) 编辑
摘要:一、问题描述 现在有一段代码,需要扫描一个网段内的ip地址,是否可以ping通。 执行起来效率太慢,需要使用协程。 #!/usr/bin/env python # -*- coding: utf-8 -*- import os import time import signal import sub 阅读全文
posted @ 2019-05-18 16:38 肖祥 阅读(8157) 评论(0) 推荐(0) 编辑
摘要:一、需求分析 注意: 本环境使用 elasticsearch 7.0版本开发,切勿低于此版本 mysql 表结构 有一张表,记录的数据特别的多,需要将7天前的记录,插入到Elasticsearch中,并删除原有表7天前的记录。 表结构如下: CREATE TABLE `historic_record 阅读全文
posted @ 2019-05-17 12:09 肖祥 阅读(2668) 评论(0) 推荐(0) 编辑
摘要:一、使用subprocess模块 使用subprocess模块可创建子进程。 subprocess.Popen(['google-chrome',"http://www.baidu.com"])可打开chrome并显示百度网页。 subprocess.Popen.pid可显示子进程的id,但这只是打 阅读全文
posted @ 2019-05-15 09:47 肖祥 阅读(10060) 评论(0) 推荐(1) 编辑
摘要:一、tcpcopy工具介绍 tcpcopy 是一个分布式在线压力测试工具,可以将线上流量拷贝到测试机器,实时的模拟线上环境,达到在程序不上线的情况下实时承担线上流量的效果,尽早发现 bug,增加上线信心。 tcpcopy 的优势在于其实时性及真实性,除了少量的丢包,完全拷贝线上流量到测试机器,真实的 阅读全文
posted @ 2019-04-27 17:46 肖祥 阅读(697) 评论(0) 推荐(0) 编辑
摘要:一、概述 由于服务器有限,因此只能用虚拟机搭建 k8s。但是开3个节点,电脑卡的不行。 k8s中文社区封装了一个 Minikube,用来搭建单机版,链接如下: https://yq.aliyun.com/articles/221687 我测试过了,是可以运行。但是,没有calico网络插件。根据其他 阅读全文
posted @ 2019-02-01 17:49 肖祥 阅读(1867) 评论(0) 推荐(0) 编辑
摘要:一、概述 生产环境中,有一个topic的数据量非常大。这些数据不是非常重要,需要定期清理。 要求:默认保持24小时,某些topic 需要保留2小时或者6小时 二、清除方式 主要有3个: 1. 基于时间 2. 基于日志大小 3. 基于日志起始偏移量 详情,请参考链接: https://blog.csd 阅读全文
posted @ 2019-01-29 17:34 肖祥 阅读(10883) 评论(0) 推荐(0) 编辑
摘要:一、kafka的副本机制 由于Producer和Consumer都只会与Leader角色的分区副本相连,所以kafka需要以集群的组织形式提供主题下的消息高可用。kafka支持主备复制,所以消息具备高可用和持久性。 一个分区可以有多个副本,这些副本保存在不同的broker上。每个分区的副本中都会有一 阅读全文
posted @ 2019-01-24 16:25 肖祥 阅读(13989) 评论(0) 推荐(2) 编辑
摘要:一、概述 实际工程开发中常常会对开发、测试和生产等不同环境配置不同的数据库环境,传统方式可以通过添加不同环境的配置文件达到部署时的动态切换的效果。这种方式还不错,不过不同环境间往往会共享相同的配置而造成一些重复工作。 项目代码 别看只有2个文件,实际情况是有十几个文件,这里只是举例而已! conf. 阅读全文
posted @ 2019-01-22 17:15 肖祥 阅读(4068) 评论(0) 推荐(0) 编辑
摘要:一、简介 XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 更多介绍,请访问官网: http://www.xuxueli.com/xxl-job/#/ 接下来,本文将详细介绍,如何安装XXL-JOB 阅读全文
posted @ 2019-01-21 14:29 肖祥 阅读(2923) 评论(2) 推荐(1) 编辑
摘要:一、概述 WebSocket WebSocket的工作流程:浏览器通过JavaScript向服务端发出建立WebSocket连接的请求,在WebSocket连接建立成功后,客户端和服务端就可以通过 TCP连接传输数据。因为WebSocket连接本质上是TCP连接,不需要每次传输都带上重复的头部数据, 阅读全文
posted @ 2019-01-18 18:45 肖祥 阅读(9154) 评论(3) 推荐(3) 编辑
摘要:一、概述 已经写好了一个Django项目,需要将这个项目用docker封装一个镜像,使用k8s发布! 在封装并运行的过程中,发现了很多问题,这里会一一介绍! 二、时区问题 采用的是镜像是 ubuntu:16.04 默认的时区是UTC,比中国时间,晚了8个小时! 那么因此,需要将默认的时区给覆盖掉! 阅读全文
posted @ 2019-01-16 11:38 肖祥 阅读(4850) 评论(0) 推荐(0) 编辑
摘要:一、概述 线上有一套k8s集群,部署了很多应用。现在需要对一些基础服务做一些常规检测,比如: 系统时间,要求:k8s的每一个节点的时间,差值上下不超过2秒 k8s版本,要求:k8s的每一个节点的版本必须一致 redis集群,要求:1. 查看cluster nodes状态 2. AOF状态 etcd, 阅读全文
posted @ 2019-01-15 18:11 肖祥 阅读(1160) 评论(0) 推荐(0) 编辑
摘要:一、概述 Linux 内核(以下简称内核)是一个不与特定进程相关的功能集合,内核的代码很难轻易的在调试器中执行和跟踪。开发者认为,内核如果发生了错误,就不应该继续运 行。因此内核发生错误时,它的行为通常被设定为系统崩溃,机器重启。基于动态存储器的电气特性,机器重启后,上次错误发生时的现场会遭到破坏, 阅读全文
posted @ 2019-01-14 17:10 肖祥 阅读(2642) 评论(0) 推荐(0) 编辑
摘要:一、分析 需求 Grafana支持短信渠道报警 要求 使用开发提供的短信API接口 请求url: 这个是java项目开发的api,请求方式为POST 如果要增加多个手机号码,使用逗号隔开 使用shell脚本的发送命令为: 逻辑 1. 在Grafana添加短信报警方式 2. 在相关图表中应用短信报警 阅读全文
posted @ 2019-01-09 12:01 肖祥 阅读(9053) 评论(4) 推荐(1) 编辑
摘要:一、需求分析 在上一篇文章,链接如下: https://www.cnblogs.com/xiao987334176/p/10237551.html 已经得到了需要的数据,现在需要对这些端口做检测,判断端口是否正常! 实际情况是,有上百个端口需要检测。如果一个个检测,可能需要花费几分钟的时间,效率不够 阅读全文
posted @ 2019-01-08 09:49 肖祥 阅读(369) 评论(0) 推荐(0) 编辑
摘要:一、需求分析 Kubernetes endpoints api地址 services api地址 下面主要展示 endpoints api的部分数据 { "kind": "EndpointsList", "apiVersion": "v1", "metadata": { "selfLink": "/ 阅读全文
posted @ 2019-01-07 10:36 肖祥 阅读(842) 评论(0) 推荐(0) 编辑
摘要:一、概述 在实际的项目中很多时候需要用到下载功能,如导excel、pdf或者文件下载,当然你可以使用web服务自己搭建可以用于下载的资源服务器,如nginx,这里我们主要介绍django中的文件下载。 前端实现方式 a标签+响应头信息 注意:这里的1指的是MySQL表的主键id 后端实现方式 使用d 阅读全文
posted @ 2019-01-06 14:34 肖祥 阅读(14002) 评论(4) 推荐(0) 编辑
摘要:一、压缩 需求描述 现在有一个目录,需要将此目录打包成tar.gz文件。因为有一个Django项目,需要用到此功能! tar.gz 目录结构如下: packing.py 是python程序,需要将folder目录打包成tar.gz文件 packing.py 内容如下: 注意: 空子目录会被打包,如果 阅读全文
posted @ 2019-01-05 11:07 肖祥 阅读(19646) 评论(5) 推荐(1) 编辑