1.查找日志文件,第12个域值等于500,并打印整行
- $0表示所有域,$12表示第12个域
awk '{if($12==500) print $0}' gate_2019-10-20.log
- 默认的域分隔符是“空格”和“制表符”,-F可以指定分割符
awk -F ':' '{if($5==789) print $0}' test.txt
2.查找文件指定内容前后几行
- 查找info文件,内容为“form-data”的前后30行(会输出每个匹配项)
grep -C 30 "form-data" info_2019-11-09.log
- 查找info文件,内容为“form-data”的前30行
grep -B 30 "form-data" info_2019-11-09.log
- 查找info文件,内容为“form-data”的后30行
grep -A 1 "form-data" info_2019-11-09.log
- 从头开始匹配两个,并输出后一行
grep -m 2 -A 1 "form-data" info_2019-11-09.log
Content-Disposition: form-data; name="orgCode"
Content-Type: text/plain;charset=UTF-8
--
Content-Disposition: form-data; name="dataType"
Content-Type: text/plain;charset=UTF-8
3.多条件查找
- 查找info文件,按照“waybill”和“773036068800450”查找
(使用管道符,在前面查找的基础上再次查找)
grep "waybill" info_2019-11-09.log | grep "773036068800450"
- 查找info文件,按照“waybill”或者“773036068800450”查找
grep "waybill" \| "773036068800450" info_2019-11-09.log
4.查询进程的精确启动时间
lstart:启动的精确时间
etime:启动后到当前的时间间隔
ps -eo pid,lstart,etime,cmd | grep nginx
5.防火墙中打开端口
linux服务器上部署了一个服务,但是在其他机器上telnet不通,可能原因是防火墙拦截了端口
以下命令可以把端口暴露出来,记得把8501换成实际需要暴露的端口
sudo iptables -I INPUT -p tcp --dport 8501 -j ACCEPT