自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 Json字符串转java对象的注意事项

当json字符串中定义的属性为首字母小写第二个字母大写时,使用lombok生成的getter方法将不能直接进行对象转化。此时你尝试通过ide获取默认的getter方法,发现生成的方法为第一个字母不会自动变为大写,这一点和lombok不一样。所以使用lombok需要通过@JsonProperty指定属性对应的json中的字段名称...

2021-05-27 17:53:00 205

原创 Java备忘

调用系统进程(执行shell脚本)使用PrecessBuilder

2021-05-20 09:43:34 119

原创 expect脚本注意事项

当你执行expect脚本send一条命令的时候,会触发一次匹配动作这个特性导致当你的命令中存在要匹配的关键字时,命令不会执行,而是永远能够匹配,进而影响预期执行效果!该特性通过执行expect -d打印debug信息能够观察到多条send命令会并行执行,如果要串行,最好一天send一条expect...

2021-05-16 17:20:20 2195

原创 linix调用脚本的几种方式总结

1、全路径调用通过shell脚本全路径调用脚本,该方式需要在脚本第一行指明bash路径 比如#!/bin/bash需要配置sudo时,也通常使用该方式调用2、当前路径调用需要先cd到脚本所在路径下,然后通过./方式调用。其实这种方式和全路径一样,只是直接在当前路径下执行的时候如果不加./系统通过path环境变量找不到你要执行的脚本3、通过bash或sh执行该方式可以不在脚本第一行添加bash路径,该方式相当于把脚本当做参数传递给bash执行4、通过source执行通过source执行,相

2021-05-08 14:52:40 433

原创 登录linux报错Permission denied (publicked,gssapi-keyex,gssapi-with-mic,password)

原因:登录主机侧第一次登录其他主机时会记录一个指纹,由于重装等原因,指纹改变,会导致登录不成功。解决:在登陆侧,删除/root/.ssh/known_hosts文件中相关ip对应的行

2021-03-30 20:34:21 254

原创 JUnit使用@Before注解不生效排查

先查看当前引入的JUint单元测试框架版本是否5.*,如果是5版本,则使用BeforeEach替换Before注解排查单元测试类是否继承TestCase,如果继承,则实际执行还是沿用JUnit3实现,直接删除继承即可

2021-03-29 17:32:37 2051

原创 如何安全的将密码传给exp脚本

使用exp的时候,经常需要传密码给脚本,但是如果直接通过传参的方式传递,会有通过ps打印的风险,因此需要使用管道符来避免别人通过ps获取敏感信息。在shell脚本中:echo $PASSWORD1 $PASSWORD2 | expect -f expectFile.exp $ARG1 $ARG2 >> LOG.FILE在EXP脚本中:获取密码:set pwd_line $expect_out(1,string)多个密码需要分割set pwds [split “pwd_line”

2021-03-21 17:46:40 132

原创 通过权限查文件之find -perm解析

以下find命令默认-name “*” -ls1、完全匹配find -perm 644该模式完全按照文件权限严格匹配,只有644权限的文件才会被匹配2、find -perm -644该方式为模式匹配,何为模式?644 = rw-r–r-- = 101100100 #二进制模式此方式可以匹配那些在1位上匹配的文件(夹),而0位则不不需要匹配,因此上诉匹配的结果是那些权限大于等于644的文件(夹)3、find -perm /007007 = ------rwx = 000000111文

2021-03-13 16:04:39 458

原创 shell脚本调用其他脚本时敏感信息的处理

我们通常使用python arg1 arg2这种形式传参,这种形式在传递非敏感性息的时候没有问题,但是在传递敏感性息时就有一个致命的问题:可以通过ps命令打印后台信息,进而获取敏感性息。那,这个问题怎么解决?答案是通过管道符!例如: echo 123 | python然后在python脚本中通过sys.stdin.read()获取参数,这样ps就不会打印出来敏感性息了。python的话,还可以通过os.envirou获取运行环境变量的方式获取到shell中定义的参数,也可以做到在ps中不打印。但

2021-03-04 10:19:05 413 1

原创 shell使用技巧总结(持续更新)

持续监控ps进程关键字信息及父进程应用场景:捕获偶现的通过ps可以打印出敏感信息并且需要定位该敏感性息是哪里打印出来的场景while truedoINFO=(ps−ef∣grep−i关键字∣grep−vgrep)if[−n"(ps −ef ∣ grep −i 关键字 ∣ grep −v grep ) if [ −n "(ps−ef∣grep−i关键字∣grep−vgrep)if[−n"{INFO}" ]; thenecho “***${INFO}***”fidone...

2021-02-27 10:26:17 224

原创 python通过pip下载或安装三方件

pip install 包名版本号 --target=指定安装路径pip download 包名版本号 -d 指定下载路径

2021-02-25 19:36:24 250

原创 最明了的logback日志压缩配置,保你一次配置成功

logback日志压缩配置此处配置参考logback中文网,需要了解logback更多功能,可移步–>logback中文网<configuration> <!--RollingFileAppender继承自FileAppender,具有轮转日志文件的功能,是我们最常使用的Appender--> <appender name="ROLLING" cl...

2020-03-25 18:40:42 8091 2

原创 判断某个实例对象是否属于某个类方法总结

总结下判断某个实例是否属于某个类的方法相必大家都有所接触,但是他们之间的区别够清楚吗?下面我就总结下instanceof运算符和isInstance()以及获取对象进行equals比较instanceof运算符InstanceOf运算符是用来在运行时指出对象是否是特定类的一个实例。InstanceOf通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。用法也非常简单...

2020-01-03 00:28:36 4763

原创 记一次java程序假死的处理过程(JVM参数调优)

休假的时候生产服务器出现了一次假死,现象是外部无法访问,批处理任务也不再运行,由于当时不在现场,客户直接kill了进程,导致没法对现场日志或者现场情况进行采集。赶回公司后它们重启已解决问题,但是领导对这次事件反应非常强烈,要求必须查明原因,于是开始着手模拟生产环境复现该问题。最终在50线程每秒5次并发的情况下复现了该场景。压测过程中发现老年代内存线性上涨,一开始以为是内存泄露导致内存溢出,但是...

2020-01-03 00:25:08 2612

原创 增强版逆向工程(界面化+功能拓展)

就当我闲的蛋疼吧,学习GUI就想着偶尔使用的逆向工程如果画成界面打个包就不用那么艰辛的配置看不懂的配置文件,加载工程了,说干就干用了几天时间写了个这玩意儿。其实功能上也是很简单的,最终就是实现了生成数据库表的java模型,但是在这之前我做了大量的工作来使你能够更加友好的完成这个事情,同时在原生功能上做了一小部分拓展,欢迎大家吐槽哈,一起建设,也算是GUI的一个小Demo相对于generate...

2020-01-02 23:56:45 246

原创 使用Sonar踩过的坑

前要服务商突然提出要增加代码质量管理,因此拉出sonarqube神器,虽然之前有用过,但是时间过久,导致搭建服务时还是踩了不少坑,这里就记录一下,也希望能对需要的朋友有所帮助。服务搭建我使用的是oracle数据库,服务器上同时搭建了两个版本的sonar服务,分别是6.0(5.6后不支持1.7)和5.4(支持jdk1.7),但是5.4版本在使用sonarlint插件(可本地扫描代码,同步qu...

2019-11-19 18:32:29 2082

原创 MyBatis控制特定SQL日志级别

前述生产过程中往往需要将重要的SQL输出到日志中以方便查看系统运行情况,但是当大数据量文件入库时的SQL信息会异常多,多到一两天时间就能把日志服务器撑爆,而且大量日志输出会影响服务器性能。但是由于架构设计及开发规范等因素限制,我们的入库SQL和查询等在一个namespace(xml)下,所以想通过logback配置文件修改的方式也不可行,无奈,只能翻mybatis源码来寻找出路。Mybati...

2019-10-29 17:33:53 3135

原创 logback自定义目录及输出格式

由于日志管理需要整合到统一的日志管理平台,所以集群部署的多台服务器日志会冲突,老板要求在日志路径及日志文件中加上服务器IP加以区分,此为前要。首先说一下为什么不用MDC赋值来操作:MDC赋值其实也可以达到区分路劲和在文件中加Ip的目的,但是代码倾入大,需要动底层框架上已经封装好的业务jar包,因此首先pass。百度后有大神说整一个logback自定义格式转换器,也就是继承ClassicCon...

2019-10-25 14:30:37 1404

原创 一站式解决CentOS7.7安装Oracle11gR2

写在前面关于CentOS安装Oracle的教程已有很多,此处就不再搬运,特拉扯一个相当详细的教程(下称‘教程’)过来( CentOS7.4下安装Oracle 11gR2),本文只对该教程中未详尽之处作以解释和说明,同时对教程中未提及的报错问题提供解决方法。1、执行./runInstaller时提示错误该步骤位于教程8.4步,通过切换root用户,然后安装Centos图形化桌面得到解决,命令:...

2019-10-25 00:33:50 808

转载 【转载】JAVA排查消耗CPU高的线程代码

最近一段时间 某台服务器上的一个应用总是隔一段时间就自己挂掉 用top看了看 从重新部署应用开始没有多长时间CPU占用上升得很快(其实之前也遇到过CPU占用很高的问题, 但是那次是 频繁的GC导致的)排查步骤1.使用top 定位到占用CPU高的进程PIDtop2.获取线程信息,确认是否为目标进程ps aux | grep PID3.使用以下命令找到占用CPU高的线程ps -mp p...

2019-07-09 11:45:01 182

原创 关于端口的简单理解

我们平时在查看端口占用或者端口信息的时候,往往会打印出端口状态,那么这个状态分别代表的是什么呢?简单的概念网上都有,为了方便我粘贴过来供大家参考(引用链接) TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的资源不会被释放。网络服务器程序要同时管理大量连接,所以很有必要保证无用连接完全断开,否则大量...

2019-07-09 09:52:39 318

原创 用JMeter做http压力测试,这一篇就够(七-监听器)

监听器压力测试除了将请求发送至服务器外,还需要时刻了解服务器运行状态,以及时洞察性能瓶颈,那么这个是候就需要各种监听器来监听服务器的各种性能指标。一般情况下监听器都置于项目维度进行监听,压测哪个线程组时可以将其他线程组置为失效。那么接下来我将就JMeter的几种常用监听器进行介绍。PerfMon Metrics Collector该监测器是监听ServerAgent发送的服务器信息:C...

2019-05-23 11:08:07 1332

原创 用JMeter做http压力测试,这一篇就够(六-参数)

上文提到了我们已经让雇佣的一堆人(线程组)知道干什么事情了,也知道他们干的怎么样,但是我不能每次都让他们干一个事情(发同样的请求)呀,那么这里就要引进参数的概念。所谓参数,可以是配置的绝对参数,也就是不变的量,也可以是随机改变的量,亦或者在多请求交互中上层请求返回的结果中的量,这些量在请求数据中的引用就能不断地改变请求数据,让线程组每次请求都能在符合要求的数据中不断变化,从而模拟出真实的压测环境...

2019-05-22 17:11:20 882

原创 用JMeter做http压力测试,这一篇就够(五-响应断言结果树)

正如前文所说,请求的作用就像你告诉了你的工人们要干什么,但是他们干的怎么样,干的成果好不好,你目前还无从所知,那么我们总不能去服务后台让开发小哥看日志吧?其实这些问题JMeter肯定已经帮你想好了,这也就是本篇要讲的响应断言和结果树。响应断言所谓断言,和Java中assert是一个意思,即根据表达式来判断某个结果是否符合预期结果。在JMeter中则具体表现为响应结果是否符合某种规则来判断请求是...

2019-05-22 11:56:21 4216

原创 用JMeter做http压力测试,这一篇就够(四-请求)

请求Jmeter支持的请求协议有多种,例如JDBC请求、TCP请求FTP请求以及Http请求等,请求是线程组的基本元素,相当于线程组要做的事情,每个线程组至少要存在一个任意类型的请求。本文以Http请求为例对Jmeter请求配置进行讲解Http请求创建Http请求创建完成后如图:区域1:请求参数一般情况下我们只关心Basic页签下的参数配置,在需要设置代理、客户端超时等高级...

2019-05-22 00:04:15 411

翻译 MarkDown最直观的帮助文档

快捷键撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Command + I标题:Ctrl/Command + Shift + H无序列表:Ctrl/Command + Shift + U有序列表:Ctrl/Command + Shift + O检查列表:Ctrl/Command + Shift + ...

2019-05-21 15:31:37 847

原创 MAVEN配置文件setting.xml的配置

Maven作为项目管理工具目前已经在很多公司使用,特备是有很多大型项目上更是需要自己搭建内网私服来对项目进行单独管理,在此就几种情况下maven的setting文件配置作以区分,以备后期使用,想了解每个配置项的具体功能或解释的,请移步https://blog.csdn.net/cbx_1993/article/details/79014360。公共配置项,也就是什么场景都需要的:1.自定义本...

2019-05-21 14:28:12 3224

原创 用JMeter做http压力测试,这一篇就够(三-线程组)

1. 线程组线程组又称为用户组,是进行性能测试时的用户资源池。(有点类似于LR的虚拟用户数)。是压力测试的最小基本单元(一个压测项目是由若干个线程池组成,至于线程池里面是干什么的我们不关心,启动压测也是启动的线程池)在此我只介绍我们实际用到的两种比较常用的两个线程组Thread Group和Stepping Thread GroupThread Group创建Thread Grou...

2019-05-10 09:41:29 575

原创 用JMeter做http压力测试,这一篇就够(二-测试计划结构)

上篇已经将JMeter压测环境搭建完成,这篇开始讲如何对服务进行压力测试!需要了解环境搭建的童鞋,请移步用JMeter做http压力测试,这一篇就够(一)首先我们将一下JMeter的项目机构,让各位童鞋对JMeter的项目有一个宏观的认知。JMeter中可以将一个压力测试的项目理解为以下结构:项目     |—各类监控器 &nb...

2019-05-09 18:58:55 550

原创 用JMeter做http压力测试,这一篇就够(一-环境搭建)

相信很多童鞋在工作过程中都有遇到程序的性能问题,但有时候苦苦找不到原因,参数改了又改,让压测童鞋压了又压,终于某一天压测人员受不了开发童鞋的一烦再烦,爆发了。。。灰头土脸回到座位,想想还是自立更生,自己动手有饭吃。说搞就搞!压测工具准备JDK1.8JMeter4.0(下载地址:https://pan.baidu.com/s/1bRBtjccRK9ydAJZZGzrbbQ,提取码:wuv...

2019-05-09 14:51:17 558

原创 记一次RPC服务发布过程(系统提供和消费同一个服务)

记一次RPC服务发布过程公司框架基本既定,没有再改的欲望,当然,最重要的是没有源码。需求很简单,只是刷新核心服务器缓存中的预加载的配置参数Map的值,但是目前对应的系统已经完善,分别有批处理管理系统、核心系统,服务流程是由管理系统发起服务调用调起核心系统暴露的批处理管理接口进行业务处理,最简单的处理当然是在核心提供服务,在管理系统消费服务,但是苦于没有管理系统源码,只能在核心系统处理,也就是说只...

2019-04-04 17:04:30 488

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除