hu_wenjie
运维开发工程师,负责系统各层级的自动化监控开发、系统的自动化巡检开发、熟悉微服务项目的自动化部署、集群方案部署、熟练掌握故障分析定位等。
展开
-
python 调用ansible脚本并输出回显
在运维的过程中,我们经常遇到这样的场景,在我们的python运维平台中,经常会执行一些常用的运维命令操作,这时候我们想要实现ansible的可视化批量执行,所以,实现最简便的操作就是python中调用ansible的执行命令。host_ip 可通过系统交互进行传参,可根据业务自行调整。往下通过os模块的popen方法,执行命令。首先,我们引入需要用到的模块。然后将要执行的命令扔到变量里。原创 2022-09-28 14:33:57 · 2216 阅读 · 0 评论 -
windows server 2012 R2 修复CVE-2018-0886漏洞方法
部分补丁安装完成后会提示重启计算机,中间过程中无需重启,全部安装完成后再重启即可。下载完成后按以上的顺序安装,否则安装时会提示“此更新不适用于你的计算机”原创 2022-09-28 11:19:26 · 2977 阅读 · 0 评论 -
windows 修复SSL/TLS协议信息泄露漏洞
打开“SSL密码套件顺序”,更改为已启用,并在“SSL密码套件”下修改SSL密码套件算法,仅保留TLS 1.2 SHA256 和 SHA384 密码套件、TLS 1.2 ECC GCM 密码套件。打开服务器,运行gpedit.msc,打开“本地组策略编辑器”,定位到计算机配置-管理模板-网络-SSL配置设置。...原创 2022-08-15 17:11:45 · 3089 阅读 · 0 评论 -
supervisor 配置elasticsearch 启动时异常
supervisor 配置elasticsearch 启动时抛出以下异常但是服务器的环境已经配置了,依旧无法生效其实,此处supervisor埋了个坑,在supervisord的配置项里默认了文件句柄的配置只需将minfds 、minprocs进行修改即可解决...原创 2022-06-07 17:39:05 · 486 阅读 · 1 评论 -
Nginx 正向代理互联网访问
环境在一个网络环境中,只有一台服务器可以使用互联网,而其他内网服务器都可以访问到这台互联网服务器,于是,我们可以通过nginx的正向代理访问互联网地址此处举例: 互联网服务器IP:192.168.1.100 内网服务器IP:192.168.1.101部署安装包:nginx-1.20.2.tar.gzproxy_connect模块:git clone https://github.com/chobits/ngx_http_proxy_connect_module.git操...原创 2022-02-25 11:26:42 · 5106 阅读 · 0 评论 -
python 上传zip附件并执行解压
1、首先从前端获取上传的文件f = request.files['upload']2、配置保存路径savepath = "/opt/upload/"if not os.path.exists(savepath): # 判断目录是否存在,不存在则新建 os.makedirs(savepath)3、配置路径后保存upload_path = os.path.join(savepath, secure_filename(f.filename))f.save(upload_pat原创 2022-01-10 17:17:50 · 1116 阅读 · 0 评论 -
zabbix4.4 使用自动发现监测web网站健康状态(通过mysql表获取web地址)
环境准备Zabbix 版本:4.4.7Python 2.7或3.0以上操作系统:Centos7 x64数据库:mysql5.6及以上注:安装zabbix的步骤可以参考我之前写的文章客户端准备 1、在zabbix客户端的配置目录中 /etc/zabbix/zabbix-agent.d/ 新增以下文件find_web_url.confUserParameter=find.web.url,sh /opt/scripts/urlstatus/find_web_url.sh U..原创 2021-02-08 17:14:44 · 399 阅读 · 0 评论 -
【Ansible-实战】之自动化配置zabbix客户端自定义键值
Ansible丰富的组件模块令我爱不释手!开战 今日需求:批量配置zabbix-agent客户端的自定义键值并复制脚本到各服务器 需求不难,使用Ansible-playbook剧本几行脚本即可搞定 涉及到复制脚本,我个人习惯就是单独建个文件夹,此处使用 file对文件进行管理---- hosts: 'all' gather_facts: False remote_user: root vars: - dir: /opt/scr...原创 2020-12-22 16:22:37 · 249 阅读 · 0 评论 -
Jenkins 通过Build periodically配置定时任务
Jenkins自带了了定期构建的模块,如图通过构建触发器中的Build periodically 功能,我们可以根据需求配置定时定时的格式如下字段 * * * * * 含义 分钟 小时 日期 月份 星期 取值范围 0-59 0-23 1月31日 1月12日 0-7 示例 每隔1...原创 2020-11-30 09:31:43 · 3310 阅读 · 0 评论 -
Docker-19 预编译版本配置系统服务并开机自启
Docker 官方提供了预编译的安装包,同时在服务管理也带来了些不便,以下将介绍如何将预编译安装包配置为系统服务并开机自动启动Docker 预编译的下载地址:https://download.docker.com/linux/static/stable/x86_64/环境操作系统:Centos7.5 x64Docker版本:Dockerversion 19.03.7服务管理工具: systemctl操作docker 预编译安装方法:https://docs.docker.c.原创 2020-12-03 12:06:38 · 359 阅读 · 0 评论 -
Docker 容器设置自启动
容器自启动分为两种情况一为新建容器时配置自启参数docker run --restart=always 容器id 或 容器名称二为已存在的容器配置自启docker update --restart=always 容器id 或 容器名称原创 2020-12-03 10:33:49 · 12133 阅读 · 2 评论 -
python2.7 提取mysqldumpslow分析报告中相关信息存至Excel
前言随着业务的增长,数据量也越来越大,紧随着就是每个开发人员所要面临的问题:MySQL的慢查询。为了更好的、更快的分析优化线上的MySQL慢查询,我们使用mysql自带的mysqldumpslow工具,对慢查询日志进行分析提取,以下提取的是慢查询量最多的30条记录即:mysqldumpslow -s c -t 30 /var/lib/mysql/mysqlslow.log > /opt/slowlog/report_slow.log# 慢查询的日志文件根据系统配置路径填写,此处将..原创 2020-11-27 15:36:57 · 520 阅读 · 0 评论 -
解决Centos7 docker容器MTU值与宿主机不一致问题
1、在宿主机创建一个新网络连接(最后一串为网络名称,可自定义)docker network create --opt com.docker.network.driver.mtu=1450 app-network2、创建新的容器(有容器可省略这步)docker-compose-1.26.2 -f /opt/docker-compose.yml up -d tomcat80083、查看容器的IDdocker ps -a4、给容器赋予新的网络连接docker network connect MTU-原创 2020-11-16 17:01:20 · 1600 阅读 · 0 评论 -
Centos7 升级MySQL5.6.40至企业版5.6.49
操作系统环境:CentOS Linux release 7.4.1708 (Core) x64旧MySQL版本:MySQL-server-5.6.40企业MySQL版本:mysql-advanced-5.6.49-linux-glibc2.12-x86_64升级前准备1、备份数据库2、备份my.cnf 配置文件开始升级操作一、企业版安装包预先处理 首先解压企业版MySQL安装包至 /opt (目录可自由选择,最好存放挂载数据盘的目录)cd /opttar -zxv..原创 2020-11-04 16:34:56 · 431 阅读 · 1 评论 -
6-Zabbix监控自动发现第三方中间件内存及CPU使用情况
zabbix-agent客户端配置准备好脚本find_app.sh processstatus.sh并上传至zabbix-agent对应的服务器目录: /opt/scripts/ 编辑zabbix-agent对应的配置文件,/etc/zabbix/zabbix-agent.conf修改红色部分的信息为:# Mandatory: no# Range: 0-1# Default:UnsafeUserParameters=1### Option: UserParameter# ...原创 2020-07-21 11:49:39 · 629 阅读 · 0 评论 -
python 中selenium常用的键盘键
python 中selenium常用的键盘键#!/usr/bin/python# -*- coding: utf-8 -*- from selenium import webdriverfrom selenium.webdriver.common.keys import Keysimport timedriver = webdriver.Chrome()driver.get(...原创 2019-07-09 16:59:07 · 2410 阅读 · 0 评论 -
python selenium无法清除文本框内容问题
正常是我们在清除文本框内容的时候,都会使用 clear() 函数进行清除,但是有时候会出现,清除完成后再点击查询时,文本框的内容会再次自动填充,这个时候我们可以选择以下方式:#清空查询条件driver.find_element_by_id("FORM_NAME").send_keys(Keys.CONTROL, "a")driver.find_element_by_id("FORM_NA...原创 2019-07-22 11:40:13 · 2849 阅读 · 0 评论 -
python中 selenium自动化windows安装Pillow、pytesseract实现识别图片验证码登录
操作系统:windows 10安装模块:Pillowpytesseracttesseract-ocr1、首先安装Pillow,可以选择安装windows版的安装包 下载地址:https://pypi.org/project/Pillow/#files 此处我选择安装Pillow-6.1.0.win-amd64-py2.7.exe2、安装完成后再进行安装pyte...原创 2019-07-29 17:41:36 · 830 阅读 · 2 评论 -
python selenium 设置元素在页面可见
我们经常在获取元素时,要定位的元素不在可见的页面中,导致定位失败,经常抛出 NoSuchElementException() 异常该问题的解决方法如下: # 拖动菜单到可见元素target = driver.find_element_by_id("menu_id")driver.execute_script("arguments[0].scrollIntoView();", targ...原创 2019-08-01 17:20:35 · 2191 阅读 · 0 评论 -
selenium --利用谷歌浏览器获取xpath的定位信息
当我们在使用selenium各种定位的时候,是不是经常遇到定位难的问题,现在推荐大家使用谷歌浏览器的神器,帮我们获取想要的定位元素,今天主要介绍xpath,其它方式类似!打开谷歌浏览器开发者模式选择元素这栏,然后光标定位到我们想要获取的内容处然后谷歌会自动定位到我们所点数据的元素位置接下来就是见证奇迹的时刻了右击鼠标-Copy - Copy Xpath然后粘贴...原创 2019-07-05 16:05:16 · 3264 阅读 · 0 评论 -
selenium 在python环境对于iframe的切入切出
# coding=utf-8from selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainsfrom selenium.webdriver.common.keys import Keysimport timeimport osmydriver=webdrive...原创 2019-07-05 15:26:30 · 1161 阅读 · 0 评论 -
centos 安装Django方法
首先安装epel扩展源: #: yum -y install epel-release更新完成之后,就可安装pip: #: yum -y install python-pip安装完成之后清除cache: #: yum clean all以上步骤完成了pip命令的安装(如果pip install 出现问题可以试试命令 pip install setuptools==33.1.1)然后执行安装Djan...原创 2018-06-28 17:25:59 · 1770 阅读 · 0 评论 -
python 实现操作sql server数据库
上一篇文章,我们写到如何在centos7.5 安装sql server数据库,这篇来说明下如何使用python连接sql server数据库并完成数据库操作。一、环境准备操作系统:centos7.5 x64安装包:pyodbc-2.1.7(或者pymssql,该模块需要安装依赖较多,不建议)离线安装使用rpm包安装,在线安装直接运行:pip install pyodbc rpm包下载...原创 2019-07-04 15:02:50 · 9453 阅读 · 0 评论 -
python实现连接mysql数据库
python实现连接mysql数据库操作系统环境:centos7工具:python2.7模块:MySQLdbcentos7 操作系统自带的python为2.7,只需安装MySQLdb模块就可以实现与mysql数据库进行连接。首先下载 MySQLdb 安装包,我这边下载的是1.2.3版本, MySQL-python-1.2.3b1.tar.gz上传至centos7服务器,/d...原创 2019-01-21 13:16:50 · 478 阅读 · 0 评论 -
关于selenium切换iframe的问题
在使用xpath定位id元素的时候,发现语法等信息都没有错误,但是还是提示:no such element: Unable to locate element: {"method":"xpath","selector":"xpath"}后经过排查,发现该页面是新开了一个iframe,导致获取不到元素解决办法:只需在定位元素之前切换到该iframe...原创 2019-07-05 14:58:42 · 1033 阅读 · 0 评论 -
nginx出现(13: Permission denied)
访问项目时,nginx抛出以下error日志:connect() to 192.168.40.246:8083 failed (13: Permission denied) while connecting to upstream解决方法:linux窗口执行以下命令# setsebool -P httpd_can_network_connect 1原创 2017-10-12 15:27:38 · 4046 阅读 · 0 评论 -
connect() to 10.1.14.35:8002 failed (13: Permission denied)
nginx错误日志中抛出以下异常日志:2018/03/02 12:23:15 [crit] 18731#18731: *3 connect() to 10.1.14.35:8002 failed (13: Permission denied) while connecting to upstream, client: 117.136.14.54, server: gxapi.baibaodun.c...原创 2018-03-02 12:56:49 · 1444 阅读 · 0 评论 -
nginx根据项目名实现内网地址转发
nginx根据访问的项目名进行内网地址转发以下是nginx的配置信息:server { listen 8081; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { ...原创 2018-04-16 13:29:50 · 9676 阅读 · 0 评论 -
SLB/ULB等负载均衡器+nginx完美结合
相信很多同行都使用阿里云产品或者其它的云产品ucloud之类的负载均衡器,但是这些负载均衡器有个问题是对外一个公网IP,负载的模式是根据前端端口监听然后后端配置多台服务器实现负载功能,但是很多网站的域名地址都希望使用默认80端口即不带端口号访问,那么问题来了,一个负载均衡器只能监听一个80端口,所以我们可以在后端部署nginx集群,前端使用80端口 这样就可以快乐的在nginx完美的...原创 2018-04-25 17:56:33 · 9568 阅读 · 1 评论 -
shell中expr的使用介绍
在Linux shell命令中expr虽然不是很起眼,但是它的作用是非常大的!到目前为止,我个人看来最大的作用就是两个——四则运算和字符串的操作。 先说四则运算,在Shell中四则运算不能简简单单的加减乘除,应该要写如下的格式: $val1=`$val2 - 1` 其中“=”后面用“`”包住表达式,这个符号在Shell中十分有用,是Tab键上面“~”的原来形式。可以用来将很原创 2016-10-26 08:28:53 · 15908 阅读 · 0 评论 -
Shell 变量
Shell 变量定义变量时,变量名不加美元符号($,PHP语言中变量需要),如:your_name="runoob.com"注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:首个字符必须为字母(a-z,A-Z)。中间不能有空格,可以使用下划线(_)。不能使用标点符号。不能使用bash里的关键字(可用原创 2016-10-26 08:40:32 · 379 阅读 · 0 评论 -
shell传递参数
Shell 传递参数我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……实例以下实例我们向脚本传递三个参数,并分别输出,其中 $0 为执行的文件名:#!/bin/bash# author:huwjecho "Shell 传递参数实例!";echo原创 2016-10-26 08:43:05 · 687 阅读 · 0 评论 -
shell数组
Shell 数组数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。与大部分编程语言类似,数组元素的下标由0开始。Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下:array_name=(value1 ... valuen)实例#!/bin/bash# autho原创 2016-10-26 08:43:53 · 557 阅读 · 0 评论 -
shell基本运算符
Shell 基本运算符Shell 和其他编程语言一样,支持多种运算符,包括:算数运算符关系运算符布尔运算符字符串运算符文件测试运算符原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。expr 是一款表达式计算工具,使用它能完成表达式的求值操作。例如,两个数相加(注意使用的是反引号原创 2016-10-26 08:49:45 · 596 阅读 · 0 评论 -
shell echo 命令
Shell echo命令Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。命令格式:echo string您可以使用echo实现更复杂的输出格式控制。1.显示普通字符串:echo "It is a test"这里的双引号完全可以省略,以下命令与上面实例效果一致:echo It is a test2.显示转义字原创 2016-10-26 08:54:00 · 638 阅读 · 2 评论 -
shell printf命令使用
Shell printf 命令上一章节我们学习了 Shell 的 echo 命令,本章节我们来学习 Shell 的另一个输出命令 printf。printf 命令模仿 C 程序库(library)里的 printf() 程序。标准所定义,因此使用printf的脚本比使用echo移植性好。printf 使用引用文本或空格分隔的参数,外面可以在printf中使用格式化字原创 2016-10-26 08:57:24 · 3004 阅读 · 0 评论 -
shell test命令使用
Shell test命令Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。数值测试参数说明-eq等于则为真-ne不等于则为真-gt大于则为真-ge大于等于则为真-lt小于则为真原创 2016-10-26 08:59:45 · 652 阅读 · 0 评论 -
shell 流程控制
Shell 流程控制和Java、PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法):<?phpif (isset($_GET["q"])) { search(q);}else { // 不做任何事情}在sh/bash里可不能这么写,如果else分支没有语句执行,就不要写这个else。if elseif原创 2016-10-26 09:01:52 · 388 阅读 · 0 评论 -
shell 函数的使用
Shell 函数linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。shell中函数的定义格式如下:[ function ] funname [()]{ action; [return int;]}说明:1、可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。2、参数返原创 2016-10-26 09:03:58 · 575 阅读 · 0 评论 -
shell 输入 输出重定向
Shell 输入/输出重定向大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回到您的终端。一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端。重定向命令列表如下:命令说明command > file将输出重定向到 fil原创 2016-10-26 09:16:44 · 814 阅读 · 0 评论