Linux命令
tail
最常用的tail -f
tail -200f error.log # 倒数200行并进入实时监听文件写入模式 |
grep
grep forest f.txt #文件查找 |
awk
基础命令
grep forest f.txt #文件查找 |
匹配
awk '/ldb/ {print}' f.txt #匹配ldb |
内建变量
NR:NR表示从awk开始执行后,按照记录分隔符读取的数据次数,默认的记录分隔符为换行符,因此默认的就是读取的数据行数,NR可以理解为Number of Record的缩写。
FNR:在awk处理多个输入文件的时候,在处理完第一个文件后,NR并不会从1开始,而是继续累加,因此就出现了FNR,每当处理一个新文件的时候,FNR就从1开始计数,FNR可以理解为File Number of Record。
NF: NF表示目前的记录被分割的字段的数目,NF可以理解为Number of Field。
find
sudo -u admin find /home/admin /tmp /usr -name \*.log(多个目录去找) |
pgm
批量查询vm-shopbase满足条件的日志
pgm -A -f vm-shopbase \ |
top
top除了看一些基本信息之外,剩下的就是配合来查询vm的各种问题了
ps -ef | grep java |
获得线程10进制转16进制后jstack去抓看这个线程到底在干啥
其他
netstat -nat|awk '{print $6}'|sort|uniq -c|sort -rn |
Java自带工具
jps
用一条命令:
sudo -u admin /opt/taobao/java/bin/jps -mlvV |
jstack
普通用法:
sudo -u admin /opt/taobao/install/ajdk-8_1_1_fp1-b52/bin/jstack 2815 |
native + java栈:
sudo -u admin /opt/taobao/install/ajdk-8_1_1_fp1-b52/bin/jstack -m 2815 |
jinfo
可看系统启动的参数
sudo -u admin /opt/install/ajdk-8_1_1_fp1-b52/bin/jinfo -flags 2815 |
jamp
查看堆的情况
sudo -u admin /opt/install/ajdk-8_1_1_fp1-b52/bin/jmap -heap 2815
dump
sudo -u admin /opt/install/ajdk-8_1_1_fp1-b52/bin/jmap \
-dump:live,format=b,file=/tmp/heap2.bin 2815或者
sudo -u admin /opt/install/ajdk-8_1_1_fp1-b52/bin/jmap \
-dump:format=b,file=/tmp/heap3.bin 2815查看堆被谁占用,配合
zprofiler
和btrace
,更方便的排查问题sudo -u admin /opt/install/ajdk-8_1_1_fp1-b52/bin/jmap \
-histo 2815 | head -10
jstat
jstat参数众多,但是使用一个就够了
sudo -u admin /opt/install/ajdk-8_1_1_fp1-b52/bin/jstat \ |
jdb
jdb可以用来预发debug,假设你预发的java_home是/opt/taobao/java/,远程调试端口是8000,那么:
sudo -u admin /opt/java/bin/jdb -attach 8000 |