Author 阿飞
Date 2017-08-10
线上服务出现故障时,需要快速定位问题,下面列出笔者经常使用的命令,
grep -v 排除指定字符串
此命令可排除指定字符串,示例
tail -1000f log.log | grep ERROR | grep -v messages
含义是在log.log文件中查找最近1000行文本数据,只获取包含ERROR字符串并且排除掉包含messages字符串的行文本数据。
ps -ef | grep 服务进程路径(或路径中的关键字符串)
此命令可查询出相关进程的信息,最常用的是查看进程号(该命令查询出来的第二个参数值),另外,通过这个也可检测出相关服务是否启动。示例:
ps -ef | grep web
红框中的是web服务所在进程的进程号。
netstat -apn | grep PID
此命令可查看进程占据的端口信息,以及与其进行数据交互的远端IP和端口。一般用来查看端口占用,也可用来检测远端IP是否是我们想要的IP(比如配置文件中远端IP配置错误等)示例:
netstat -apn | grep 2577
cat filename
此命令可查看指定文件中的全部内容,常用来查看文件内容,或结合管道命令个grep命令来在文件中查找包含特定字符串的行(比如:cat configuration.properties | grep zookeeper命令可在configuration.properties文件中查找包含字符串zookeeper的行),示例:
find . | xargs grep -ri 字符串
此命令用来在当前目录(.表示当前目录)下查找所有文件(递归查询,即深度搜索所有文件)中包含指定字符串的文件以及行。示例:
find . | xargs grep -ri