工具类
筏镜
这个作者很懒,什么都没留下…
展开
-
Python调用ansible 2.8 API
参考AnsibleAPI 开发Python3 调用 Ansible2.x APIansible 封装基础类import jsonimport shutilfrom ansible.module_utils.common.collections import ImmutableDict #用于添加选项。比如: 指定远程用户remote_user=Nonefrom ansible.parsing.dataloader import DataLoader #读取转载 2022-04-10 17:13:53 · 1101 阅读 · 0 评论 -
ansible-playbook 的使用(二)
前言这一篇ansible-playbook(二) 是紧跟上一篇ansible-playbook 的使用 来进行扩展,这一篇相对上一篇增加了 template (模板),backup(备份),register,failed_when 等情况的扩展。这一篇也是要基于上一篇关于 ansible-playbook 变量,Roles 的基础上来看。实践template 和 backup先大致介绍template 和backup 功能:template : 我们在针对一个比如像配置文件进行拷贝的时候,这个原创 2022-03-27 16:50:23 · 2600 阅读 · 0 评论 -
yaml 文件(字符串)的解析
前言我在遇到准备将一串符合yaml 的字符串进行解析,在搜索之后发现解析yaml 基本都是对文件进行解析。但自己字符串用 new Yaml().loadAs 无法解析,按道理也是支持字符串不应该不支持。想到自己字符串的换行可能不对,那么在java中如何才认为是一个换行呢?BufferedWriter writer = new BufferedWriter(write);writer.newLine() 这样一个方法,看了这个实现方式 String lineSeparator = java.secur原创 2022-03-20 16:11:56 · 2886 阅读 · 0 评论 -
python3 实现应用启动及关键字检测
我们在应用的时候,经常需要实现应用启动及检测功能。我们启动命令python3 restart_and_watchlog.py “sh bin/start.sh” “logs/log.log” “Started Application in” 20第一个restart_and_watchlog.py 检测脚本sh bin/start.sh 应用启动命令logs/log.log 应用启动日志Started Application in 关键字20 过期时间10s# -*- coding: ut原创 2022-03-19 20:48:21 · 582 阅读 · 0 评论 -
Tcpdump命令的使用
tcpdump 简单来说就是一款抓包工具一、概述tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tcpdump存在于基本的Linux系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正常执行,但具备root权限的用户可以直接执行它来获取网络上的信息。因此系统中存在网络分析工具主要不是对本机安全的威胁,而是对网络上的其他计算机的安全存在威胁。不带参数的tcpdump会收集网络中所有的信息包头,数据量巨大,必须过滤。二、选项介绍-A 以AS原创 2022-03-06 18:20:24 · 3863 阅读 · 0 评论 -
java命令行编译运行带依赖jar包的main函数
对main函数进行编译当我们对java 文件进行编译的时候,可能会遇到需要同时编译多个java 文件 ,编译需要依赖包的情况。javac -Djava.ext.dirs=依赖包目录 *.java(所有需要编译java文件)-d 需要输出的目录例子:javac -Djava.ext.dirs=lib *.java -d output对main函数进行运行java -Djava.ext.dirs=依赖包目录 需要运行的main 的主函数类java -Djava.ext.dirs=原创 2022-02-12 15:59:41 · 1386 阅读 · 0 评论 -
Python 读写txt和excel文件及操作数据库
前言我们经常会遇到我们对数据库中数据进行拉取并处理脚本,我们如果要操作线上数据库。用java操作就过于麻烦,这个时候我们更方便的方法是直接通过一个python脚本去读取数据库,并进行处理数据。那么我们可以将读取数据库数据,写入txt文件,excel文件,读取txt文件,excel文件作为一个标板。用于后续直接修改文件内容实践我们在项目中创建如下文件夹文件conf-dev.ini 配置文件[db-config]host = localhostport = 3306username = roo原创 2022-01-16 20:22:10 · 1244 阅读 · 0 评论 -
拦截http请求打印入参出参(Okhttp3拦截器)
前言我们应用中经常出现请求其他三方接口,这也是经常会出错,找当时请求参数,返回结果比对的情况。如果自己加打印,很多时候会忘记。这里通过对Okhttp工具添加拦截器方式,将需要入参出参进行打印。实践一、引入maven 依赖 <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId>原创 2021-11-27 17:35:27 · 3184 阅读 · 0 评论 -
open-dingtalk和nginx 做内网转发
前言我们有服务部署在我们内网服务,需要暴露给合作方演示这种服务。之前找了open-dingtalk 找了挺多配置没有发现关于做除了127.0.0.1 之外域名做转发, nginx 能够很好对域名进行转发。实践http://nginx.org/en/download.html nginx下载修改nginx.conf 配置监听9999 端口 和 localhost,127.0.0.1 域名server { listen 9999; server_na原创 2021-07-01 17:45:45 · 935 阅读 · 1 评论 -
DelayQueue 实现单机延迟任务处理
前言我们有一些项目需要单机获取延迟处理一些任务,延迟的时间并不长。也没有延迟队列支持,项目本身docker部署利用redis 实现又存在队列锁竞争问题,该资源也不是非常重要如果不小心丢失部分也无关紧要。当然也可以先存入数据库,项目启动将数据加载的内存中。实践1、配置线程池处理处理数据,可以根据自身内部数据多少配置线程池,不确定可以进行配置方式处理。@Componentpublic class ParkingConfig { public static DelayQueue<原创 2021-07-01 16:04:17 · 279 阅读 · 0 评论 -
Api 接口统计工具类
前言我们遇到公司让统计接口,一个项目中接口很多不能真的一个一个统计吧,为了提高统计效率。写一个统计工具类。实践一、添加maven依赖 <dependency> <groupId>org.reflections</groupId> <artifactId>reflections</artifactId> <version>0.9.11</version&原创 2021-05-11 18:29:07 · 948 阅读 · 1 评论 -
视频截取第一帧
前言网上视频截取第一帧的案例还是比较多的,普遍的方法主要是使用ffmpeg 对其截取。在实践过程中,发现window 截取成功。但linux 环境中截取失败,对于失败原因这里将失败内容贴出来,供他人查看失败原因## A fatal error has been detected by the Java Runtime Environment:## SIGSEGV (0xb) at pc=0x000000000000d1f6, pid=14, tid=0x00007fe8b67e6b10##原创 2021-04-29 15:55:14 · 999 阅读 · 0 评论 -
easyexcel 自定义导出格式
前言easyexcel 由于其比poi更为简单api和更高性能的情况下,easyexcel 但格式下载不符合要求。比如下载格式设置自定义下拉框,对字体进行设置,对部分列进行隐藏的个性化需求。实践一、引入maven依赖<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId>原创 2021-01-11 15:02:48 · 5632 阅读 · 3 评论 -
创建一个代码生成工具
前言我们在很多一些项目中主要涉及到一些针对表的增删改查的项目,如何简化针对项目进行减少重复工作的开发很有必要。谷歌为我们提供了一套代码生成jar包。这里通过mysql来进行示范。实践先看一下整个项目的目录结构1、引入需要进行代码生成的jar,这里由于我们通过mysql来进行示范,所以需要引入mysql-connector-java 包,如果是其他数据库根据数据库种类来进行切换。 <properties> <java.version>1.8</j原创 2021-01-09 00:12:00 · 347 阅读 · 0 评论 -
fiddler抓包教程
前言fiddler 是目前非常常用抓包工具,了解和使用fiddler 进行抓包实践,是在开发过程经常使用到的开发工具。教程一、fiddler的下载fiddler下载链接:https://www.telerik.com/download/fiddler/fiddler4这个fiddler的下载需要翻墙故在这里提供一份百度网盘的分享链接。https://pan.baidu.com/s/1GGW2XQIPDlsRd-gvcbfxvg提取码:519a二、fiddler的使用安装完成将Fiddler原创 2020-12-23 00:31:40 · 13428 阅读 · 2 评论 -
缓存对象到文件和从文件获取对象
背景我们在工作中可能会遇到这样的场景,我们需要定时获取获取一个对象。但这个对象比较大,数量比较多。缓存在redis,数据库里面都不太合适。这个时候我们可以考虑将文件缓存本地文件当中。代码1、配置文件文件缓存路径在application.properties中添加fileCacheDir=C:\\Users\\Administrator\\Desktop\\deploy2、设置文件缓存路径@Configurationpublic class FileCacheConfig { @V原创 2020-07-25 15:54:14 · 356 阅读 · 0 评论 -
常见的gson的使用方法与fastJson的对比
fastJson 是我们很常用Json转化使用的依赖,但是fastJson经常报漏洞。在github也有很问题,并没有得到及时的解决。可能需要fastJson切换成其他json的工具。这里将fastJson和gson常用一下方法做一下对比。让只熟悉fastJson更容易切换Gson.这里采用fastJson 2.6.2 和gson 2.2.4 做对比进行切换 <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->原创 2020-06-26 18:39:21 · 664 阅读 · 0 评论 -
雪花算法的java实现(不用设置机器id和数据id)
Snowflake生成的是Long类型的ID,一个Long类型占8个字节,每个字节占8比特,也就是说一个Long类型占64个比特。Snowflake ID组成结构:正数位(占1比特)+ 时间戳(占41比特)+ 机器ID(占5比特)+ 数据中心(占5比特)+ 自增值(占12比特),总共64比特组成的一个Long类型。其实我们通过图片可以看出来,我们如果保证单机唯一,只需要保证前面 时间戳(...原创 2020-05-02 18:11:16 · 2722 阅读 · 1 评论 -
excel导入导出(easyexcel实现)
一、为什么用easyexcel我在easyexcel了解之后,之所以用easyexcel主要是以下两点:1、easyexcel 相对poi来说,在读取excel表格的时候,可以一行一行读取poi相对更节约内存。2、easyexcel 可以直接在数据类上面指定导入列,api更加简洁。二、excel导入解析1、引入maven依赖 <dependency> ...原创 2020-04-11 19:47:42 · 2281 阅读 · 3 评论 -
获取客户端真实IP地址
在现在软件开发中,获取客户端的ip地址是非常常见的操作。request为我们提供request.getRemoteAddr()方法提供ip地址,但是由于我们在一般软件开发中基本都会使用代理,获取ip地址的过程就是从常见代理软件中获取他们添加的ip请求头。public class IpUtil { /** * 获取用户真实IP地址,不使用request.getRemoteAddr...原创 2020-03-16 22:21:34 · 1247 阅读 · 0 评论 -
okhttp 文件上传,get,post,put,delete
我们在工作中用http协议转调其他接口,常用的内容。但很多时候我们在使用okhttp的工具类有很多,比如文件上传,post,put,delete请求 工具类当中并不完整。有部分又没有请求头,让人很是苦恼。这里自己写一份比较全的okhttp的工具类来用,大家也可以参考。1、我这里引入的依赖为。 <dependency> <groupId>com....原创 2020-02-20 23:17:23 · 1584 阅读 · 0 评论 -
JAVA实现文件ZIP压缩和解压(解决中文文件名乱码)
我们在工作中遇到文件的压缩的解压,我在使用的时候有遇到中文的时候,就会造成乱码。这个也是经常会用到工具类,所以就把工具类贴出来供大家参考。1、引入依赖,这个依赖能够制定压缩文件名的编码。 <!-- ant.jar 用于解决文件解压缩乱码问题 --> <dependency> <groupId>ant</gro...原创 2020-01-12 18:20:28 · 1950 阅读 · 0 评论 -
通过实现ConstraintValidator注解完成参数自定义校验(只用实现一个注解)
我们在遇到参数校验的时候最容易想到的方法就是通过aop对参数进行校验。但是如果一个对象里面需要校验的参数很多,校验接口很多的情况下。用aop实现参数校验就会让逻辑杂乱。这时可以ConstraintValidator的注解来对单个的成员变量进行校验,能够很好解耦。先贴上需要校验的vo类@Datapublic class VerificationVO { @EnumCheckValue...原创 2019-11-08 00:27:08 · 4714 阅读 · 0 评论 -
Insert语句单个批次数量过多解决方案
Insert语句单个批次数量过多解决方案当有时候我们需要对表进行大批量插入语句,这个时候如果一次拼接数据量过多导致慢查询。单个批次执行的性能会出现较大的下降,出现大量慢查询,并发线程堆积,CPU上升出现瓶颈。这个时候可以通过分批插入数据库的方案。这里写一个分批的工具类。public class SplitUtils { public static <T> List<...原创 2019-10-31 22:33:40 · 1590 阅读 · 1 评论