随笔分类 -  python 运维开发

摘要:一、使用场景 如果每次都在本机上面写代码,然后传到服务器上面,在服务器上面运行就太麻烦了。这样的方式十分繁琐,效率很低。 因此,希望可以像下面一样操作: 可以直接在本机上码代码 自动将代码同步到远程服务器上面 本机路径 D:\python_project\bmt 远程linux路径 (192.168 阅读全文
posted @ 2019-06-26 18:04 肖祥 阅读(6421) 评论(0) 推荐(1)
摘要:一、问题描述 在Django视图函数中,导入 gevent 模块 启动Django报错: 原因在于执行这行 monkey.patch_all() 代码时报错了。 既然Django不能使用协程,那我需要使用异步执行,怎么办? 请看下文 二、进程池、线程池与异步调用、回调机制 进程池、线程池使用案例 进 阅读全文
posted @ 2019-06-25 14:19 肖祥 阅读(1938) 评论(0) 推荐(0)
摘要:一、SSL协议加密方式 SSL协议即用到了对称加密也用到了非对称加密(公钥加密),在建立传输链路时,SSL首先对对称加密的密钥使用公钥进行非对称加密,链路建立好之后,SSL对传输内容使用对称加密。 1.对称加密 速度高,可加密内容较大,用来加密会话过程中的消息。 2.公钥加密 加密速度较慢,但能提供 阅读全文
posted @ 2019-06-17 17:56 肖祥 阅读(21526) 评论(0) 推荐(0)
摘要:一、问题描述 修改 /etc/security/limits.conf ,重启之后不生效 内容如下: 二、解决问题 根据网上资料的说法有几种 1. 修改 /etc/ssh/sshd_config 开启这2项 2. 以下几个文件 确保开启了pam_limits.so 3. 重启系统 注意:修改了/et 阅读全文
posted @ 2019-06-12 12:02 肖祥 阅读(3980) 评论(0) 推荐(0)
摘要:一、简介 这次给大家介绍下MySQL官方最新版本5.7.17中GA的新功能 Group Replication 。 Group Replication是一种可用于实现容错系统的技术。复制组是一组通过消息传递相互交互的服务器。通信层提供一组保证,例如原子消息和总订单消息传递。这些是非常强大的属性,可以 阅读全文
posted @ 2019-06-09 21:38 肖祥 阅读(697) 评论(0) 推荐(0)
摘要:一、需求 现在有一个场景,需要每月的最后一天,发送一封邮件。 二、获取本月最后一天 有没有办法使用Python的标准库轻松确定(即一个函数调用)给定月份的最后一天? 答案是有的,使用 datetime 就可以实现 #!/usr/bin/env python # coding: utf-8 impor 阅读全文
posted @ 2019-05-27 21:24 肖祥 阅读(12780) 评论(0) 推荐(1)
摘要:一、简述 microk8s不通过虚拟机但与主机隔离方式,快速轻巧安装Kubernetes。通过在单个快照包中打包Kubernetes,Docker.io,iptables和CNI的所有上游二进制文件来实现此隔离。 snap包是一个应用程序容器 - 您可以将其想象为Docker容器的轻量级版本。它使用 阅读全文
posted @ 2019-05-26 16:11 肖祥 阅读(7700) 评论(0) 推荐(1)
摘要:一、需求分析 有一批key已经写入到3个txt文件中,每一个txt文件有30万行记录。现在需要读取这些txt文件,判断key是否在数据仓库中。(redis或者mysql) 为空的记录,需要写入到日志文件中! 任务分工 1. 使用多进程技术,每一个进程读取一个txt文件 2. 使用协程技术,批量读取t 阅读全文
posted @ 2019-05-24 18:48 肖祥 阅读(4217) 评论(0) 推荐(0)
摘要:一、连接redis集群 python的redis库是不支持集群操作的,推荐库:redis-py-cluster,一直在维护。还有一个rediscluster库,看GitHub上已经很久没更新了。 安装 连接redis集群 #!/usr/bin/env python # coding: utf-8 f 阅读全文
posted @ 2019-05-23 11:46 肖祥 阅读(3684) 评论(0) 推荐(1)
摘要:一、需求分析 需要统计出当前数据库的所有数据库名,以及每个用户的授权信息。 获取所有数据库 在mysql里面,使用命令: 就可以获取所有数据库了 获取所有用户 执行命令: 注意:需要排除到默认的用户,比如: 获取用户权限 语法: 比如: 执行输出: 注意:这段信息表示,test用户,对DB01数据库 阅读全文
posted @ 2019-05-21 16:38 肖祥 阅读(1726) 评论(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 肖祥 阅读(8216) 评论(0) 推荐(0)
摘要:一、需求分析 注意: 本环境使用 elasticsearch 7.0版本开发,切勿低于此版本 mysql 表结构 有一张表,记录的数据特别的多,需要将7天前的记录,插入到Elasticsearch中,并删除原有表7天前的记录。 表结构如下: CREATE TABLE `historic_record 阅读全文
posted @ 2019-05-17 12:09 肖祥 阅读(2701) 评论(0) 推荐(0)
摘要:一、使用subprocess模块 使用subprocess模块可创建子进程。 subprocess.Popen(['google-chrome',"http://www.baidu.com"])可打开chrome并显示百度网页。 subprocess.Popen.pid可显示子进程的id,但这只是打 阅读全文
posted @ 2019-05-15 09:47 肖祥 阅读(10215) 评论(0) 推荐(1)
摘要:一、tcpcopy工具介绍 tcpcopy 是一个分布式在线压力测试工具,可以将线上流量拷贝到测试机器,实时的模拟线上环境,达到在程序不上线的情况下实时承担线上流量的效果,尽早发现 bug,增加上线信心。 tcpcopy 的优势在于其实时性及真实性,除了少量的丢包,完全拷贝线上流量到测试机器,真实的 阅读全文
posted @ 2019-04-27 17:46 肖祥 阅读(752) 评论(0) 推荐(0)
摘要:一、概述 由于服务器有限,因此只能用虚拟机搭建 k8s。但是开3个节点,电脑卡的不行。 k8s中文社区封装了一个 Minikube,用来搭建单机版,链接如下: https://yq.aliyun.com/articles/221687 我测试过了,是可以运行。但是,没有calico网络插件。根据其他 阅读全文
posted @ 2019-02-01 17:49 肖祥 阅读(1914) 评论(0) 推荐(0)
摘要:一、概述 生产环境中,有一个topic的数据量非常大。这些数据不是非常重要,需要定期清理。 要求:默认保持24小时,某些topic 需要保留2小时或者6小时 二、清除方式 主要有3个: 1. 基于时间 2. 基于日志大小 3. 基于日志起始偏移量 详情,请参考链接: https://blog.csd 阅读全文
posted @ 2019-01-29 17:34 肖祥 阅读(11147) 评论(0) 推荐(0)
摘要:一、kafka的副本机制 由于Producer和Consumer都只会与Leader角色的分区副本相连,所以kafka需要以集群的组织形式提供主题下的消息高可用。kafka支持主备复制,所以消息具备高可用和持久性。 一个分区可以有多个副本,这些副本保存在不同的broker上。每个分区的副本中都会有一 阅读全文
posted @ 2019-01-24 16:25 肖祥 阅读(14247) 评论(0) 推荐(2)
摘要:一、概述 实际工程开发中常常会对开发、测试和生产等不同环境配置不同的数据库环境,传统方式可以通过添加不同环境的配置文件达到部署时的动态切换的效果。这种方式还不错,不过不同环境间往往会共享相同的配置而造成一些重复工作。 项目代码 别看只有2个文件,实际情况是有十几个文件,这里只是举例而已! conf. 阅读全文
posted @ 2019-01-22 17:15 肖祥 阅读(4176) 评论(0) 推荐(0)
摘要:一、简介 XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 更多介绍,请访问官网: http://www.xuxueli.com/xxl-job/#/ 接下来,本文将详细介绍,如何安装XXL-JOB 阅读全文
posted @ 2019-01-21 14:29 肖祥 阅读(3002) 评论(2) 推荐(1)
摘要:一、概述 WebSocket WebSocket的工作流程:浏览器通过JavaScript向服务端发出建立WebSocket连接的请求,在WebSocket连接建立成功后,客户端和服务端就可以通过 TCP连接传输数据。因为WebSocket连接本质上是TCP连接,不需要每次传输都带上重复的头部数据, 阅读全文
posted @ 2019-01-18 18:45 肖祥 阅读(9244) 评论(3) 推荐(3)