Java Djb调试

https://teaspoon-consulting.com/articles/tracing-java-method-calls.html
https://stackify.com/java-remote-debugging/

JVM启动时的参数
-Xdebug
-Djava.complier=NONE
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5000

jdb -attach localhost:5000 启动调试

classes 查看所有正在运行的类
methods com.eqxiu.Test列出该类下的所有方法
stop in com.eqxiu.Test.m1 设置断点
threads列出所有的线程
thread 0x23b 指定指定的线程
locals 列出方法的参数
dump arg 或者 print arg 可以只看某一个参数
resume 好像是让方法继续执行直到下一个断点
where : The where command shows the current stack trace and allows you to see where you’re at:
step : To step to the next instruction
step up: You can also use the step up command to run the code to the end of the current method, exit it and stop at the next line of the calling method:

set message = “Goodbye, John” 改变变量的值
cont or run : To continue execution, use the cont or the run command:
clear : To see the list of available breakpoints, let’s enter the clear command
clear com.HelloController.hello(java.lang.String) : to clear the breakpoint

在Mac上使用iTerm2登录堡垒机2

经过不断的尝试,今天终于成功了。之前还写过一篇相似的博客,内容很繁琐,今天的方法很简单。

a 先安装expect

1
brew install expect

b 新建一个文件lg
内容如下,修改相关内容

1
2
3
4
5
6
7
8
9
#!/usr/bin/expect
set user aa
set host 13.06.04.19
set password KY7Fk8
spawn ssh -i /Users/jack/Documents/company/jack.pem $user@$host
expect "*passphrase*"
send "$password\r"
interact
expect eof

c 给文件授权

1
chmod 777 lg

d 将文件移动到/usr/local/bin/目录下,然后就可以直接在命令行输入lg登录堡垒机了

其他

如果使用sh lg执行命令的时候,可能会发现expect报错: spawn: command not found
因为这个脚本不是bash脚本。

参考

http://www.tuijiankan.com/2015/05/15/iterm2-mac-ssh-with-no-password/
https://blog.csdn.net/Jerome_s/article/details/77351507

Linux 向Alias传参数

Linux 向alias传参数
参考以下代码
在~/.bashrc文件中增加如下行

1
alias uploadfile='a() { scp $1 root@google.com:/data/resource/;}; a'

然后使文件生效

1
source ~/.bashrc

使用如下代码上传

1
MacBookPro:Desktop hohode$ uploadfile sms.jpeg

注意分号,之前因为少了这个分号,困扰了我好久。

Elasticsearch分词疑惑

今天使用must_not进行过滤的时候,发现“五一”关键词过滤不掉,例如标题“五一劳动节放假通知”,后来经过反复的探索,发现是分词器的问题。

1
2
3
4
5
GET /_analyze
{
"analyzer": "ik_smart",
"text": "五一劳动节放假通知"
}

分词结果如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
"tokens": [
{
"token": "五一劳动节",
"start_offset": 0,
"end_offset": 5,
"type": "CN_WORD",
"position": 0
},
{
"token": "放假",
"start_offset": 5,
"end_offset": 7,
"type": "CN_WORD",
"position": 1
},
{
"token": "通知",
"start_offset": 7,
"end_offset": 9,
"type": "CN_WORD",
"position": 2
}
]
}

会把“五一劳动节”当成一个token,而不是“五一”和“劳动节”,所以“五一”关键词就匹配不都了。

使用某个索引

1
2
3
4
5
GET /bigdata/_analyze
{
"analyzer": "ik_smart",
"text": "五一劳动节放假通知"
}

天下大乱,二战秩序正在走向终结

一、鸦片战争,两次世界大战和国际贸易

二战秩序,顾名思义,是通过第二次世界大战,由胜利者所制定下来的全球政治格局。二战秩序,给世界带来了超过半个世纪的大体和平。之所以世界会出现整体性的大规模战乱,是因为秩序的缺席。而通过战争的残酷兼并,最终由最强大的那个胜利者,又缔造出来新的秩序。

旧秩序失衡,会引发战争。通过战争,再次形成新的秩序。然后再失衡,再通过战争进行再平衡。纵观世界历史,一直都是如此反复。

Read More