⽇志查常⽤命令-超实⽤
0 前⾔
(1)命令的尾部添加 --color 或者 --color=auto 可以使关键字带颜⾊,很清晰。
1 Linux⽇志查常⽤命令
1.1 cat、zcat
cat -n app.log | grep "error":查询⽇志中含有某个关键字error的信息,显⽰⾏号。
cat -n app.log | grep "error" --color:查询⽇志中含有某个关键字error的信息,显⽰⾏号,带颜⾊的。
cat -n test.log | tail -n +92 | head -n 20 :表⽰查询92⾏之后的⽇志;表⽰在前⾯的查询结果⾥再查前20条记录。
cat -n app.log |grep "error" | more:使⽤more和less命令分页查看⽇志,空格键翻页。
cat -n app.log |grep "error" > :把⽇志保存到⽂件。
zcat shopdiy-job01.jd__shopdiy-job.warn. | gerp "hotelFriendCircle poi":直接查压缩包⾥的⽇志内容
gzip -dc app. |grep "此次共实际刷数据" | more:不解压直接查看压缩包中的“关键词”信息
1.2 grep
grep -E "123|abc" app.log(grep -E "123|abc" app.log --color):查询⽇志⽂件app.log中包含 关键字 123 或 包含 关键字 abc 的⾏。(带颜⾊)
tail -f app.log | grep -E -C20 "123|abcd" --color:实时查看⽇志,且包含关键字 123 或者 abcd 的⾏。
grep -nE "123|abc" app.log:查询⽇志⽂件app.log中包含 关键字 123 或 包含 关键字 abc 的⾏,显⽰⾏号。
grep "此次共实际刷数据" app.log:查看⽇志中的关键字。
grep "此次共实际刷数据" app.log | more:查询关键字,并且按空格键翻页。
grep -i "magic" app.log :不分⼤⼩写的搜索匹配magic。默认情况下是区分⼤⼩写的。
grep -w "magic" app.log :匹配整个单词⽽不是字符串的⼀部分(如匹配“magic”,⽽不是“magical”)。
grep -E "123" app.log:显⽰app.log中含有关键字"123"的⾏内容。
grep -E -A5 "123" app.log:显⽰app.log中含有关键字"123"的⾏内容,以及之后的5⾏内容。
grep -E -B5 "123" app.log:显⽰app.log中含有关键字"123"的⾏内容,以及之前的5⾏内容。
grep -E -C5 "123" app.log:显⽰app.log中含有关键字"123"的⾏内容,以及之前之后的各5⾏内容。
1.3 head【头正尾负】
head -n 10 app.log(head -n +10 app.log、head 10 app.log):查看⽇志中的头10⾏⽇志。
head -n -10 app.log:查看⽇志中除了尾10⾏之外的所有⽇志。
1.4 tail【头正尾负】
tail -n 10 app.log(tail -n -10 app.log、tail -10 app.log):查看⽇志中的尾10⾏⽇志。
tail -n +10 app.log:查看⽇志中除了头10⾏之外的所有⽇志。
tail -f app.log:实时查看⽇志信息。
tail -f app.log |grep "关键词":实时查看⽇志中含有某个关键词的信息。
tail -f app.log |grep -A3 "关键词":实时查看⽇志中含有某个关键词的信息,该⾏的前⾯和后⾯各多显⽰3⾏。⽐如:tail -f app.log |grep -A3 "此次共实际刷数据"。
tail -f app.log |grep "mtUserScore" --color:实时查看app.log⽇志中的含有关键词“mtUserScore”的⽇志信息,并且彩⾊打印。
tail -n 20 app.log |grep --color "此次共实际刷数据":查看⽇志的最后20⾏并且搜索关键字。
tail -fn 100 app.log:循环实时查看最后100⾏的记录。
tail -fn 100 app.log |grep --color "此次共实际刷数据":循环查看最后100⾏的记录,并且查关键字。
tail -500 /data/applogs/tomcat/catalina.out:查看Tomcat错误⽇志。
tail -f app.log | grep -A50 "randomFlow=" --color:查看后⾯50⾏的⽇志。tail -f app.log | grep -A50 "接⼝查询结果=" --color
tail -f app.log | egrep "repast launchId=|ateCreative" --color:命中多个关键字中其中⼀个即可,注意:| 的前后不能有空格。
tail -f app.log | egrep "ERROR|WARN" --color:命中多个关键字中其中⼀个即可,注意:| 的前后不能有空格。
tail -f app.log | egrep "ERROR|WARN" -wc:统计数量,命中多个关键字中其中⼀个即可,注意:| 的前后不能有空格。
grep "modifyBudget" midas-shopdiy-web.access.log | grep "realAccountId=58754220" --color:同时满⾜两个条件。
tail -f nginx.access.log | grep -E "getPaginateList|queryAccounts" --color :匹配多个关键字之⼀即可
1.5 ps
ps -ef |grep java:查看Java进程。
ps -ef |grep tomcat:查看Tomcat进程。
curl www.baidu:查看url能不能使⽤。
ps -ef | grep 8080:查看端⼝号8080被哪个进程占⽤。
ps -ef | grep redis:查看已经启动所有进程中与字符“redis”相关的进程。
ps -ef | grep java:查看已经启动所有进程中与字符“java”相关的进程。
ping 192.168.1.122:查看本机能否和IP=192.168.1.122的主机连通。
scp -r redis-3.0.0/ 192.168.1.122:/usr/local:如果可以连通,则可以远程传输⽂件。
f /usr/local/redis-cluster/7001:复制⽂件到指定⽂件夹。
1.6 Nginx⽇志查询
应⽤⽇志记录的位置:/data/applogs/shopdiy-web/logs
tail -f app.log:动态查看应⽤⽇志。
应⽤Nginx⽇志记录的位置,HTTP请求时长结果查看:/data/applogs/nginx
tail -f shopdiy-web.access.log:通过访问页⾯来动态查看Nginx⽇志。
1.7 压缩包的解压-压缩
gz压缩:app.log-2018-09-22-1.log ⽂件,执⾏:gzip app.log-2018-09-22-1.log,被压缩成 app.
gz接压缩:app. ⽂件,执⾏:gzip -d app.,被解压成 app.log-2018-09-22-1.log
gzip -dc app. |grep "此次共实际刷数据" | more:不解压直接查看压缩包中的“关键词”信息
1.8 sed
这个命令可以查⽇志⽂件特定的⼀段 , 也可以根据时间的⼀个范围查询。
sed -n "5,10p" app.log:按照⾏数——查看⽇志第5到第10⾏。
sed -n "/2018-04-08 09:40:53.374/,/2018-04-08 10:21:04.812/p" express.log | grep "此次共实际刷数据" :按照时间段——查看两个时间之间的⽇志,并且显⽰关键字。其中,时间点⼀定要在⽇志中存在,可⽤:grep -E "2018-04-08 09:40:53.374"
app.log --color:来查看时间点是不是存在⽇志中,带颜⾊。
1.9 lsof (list open files)
lsof -i tcp:查看TCP连接的端⼝号使⽤情况
lsof -i udp:查看UDP连接的端⼝号使⽤情况
lsof -i tcp:58528 :(port替换成端⼝号,⽐如6379)可以查看该端⼝被什么程序占⽤,并显⽰PID,⽅便kill
lsof -i udp:58529 :(port替换成端⼝号,⽐如6379)可以查看该端⼝被什么程序占⽤,并显⽰PID,⽅便kill
kill -9 518:结束进程PID号为518的进程。
1.10 netstat
netstat -a:列出所有端⼝
netstat -at :列出所有tcp端⼝
netstat -au:列出所有udp端⼝
netstat -l :只显⽰监听端⼝
netstat -lt :只列出所有监听tcp端⼝
netstat -lu :只列出所有监听udp端⼝
netstat -st:显⽰ TCP 端⼝的统计信息
netstat -su:显⽰ UDP 端⼝的统计信息
1.11 ifconfig
1.12 查看⽇志⽂件⼤⼩和查看指定关键词
(1)wc -c app.log:参数 -c 表⽰统计字符,因为⼀个字符是⼀个字节,所以这样得到字节数。
(2)du -sb app.log:参数 -b 表⽰以B计数。
(3)du -sm app.log:参数 -m 表⽰以M计数。
(4)du -sh app.log:参数 -h 表⽰以K/M/G计数,容易识别出⽂件⼤⼩ 。
cd /data/applogs/nginx
ls -al
du -sh dp-nginx.access.log
查看这个⽂件中这个关键词被调⽤地⽅:
cat dp-nginx.access.log | grep "queryAccountBalance"
查看这个⽂件中这个关键词被调⽤的数量:
cat dp-nginx.access.log | grep "queryAccountBalance" | wc -l
查看这些⽂件中这个关键词被调⽤的数量:
cat dp-nginx.access* | grep "queryAccountBalance" | wc -l
另:less app.log使⽤:
(1) cd /data/applogs/shopdiy-cpc-job/logs
(2) ls -al
(3) 分页加载⽇志数据:less app.log
(4) 此时,shift+GG 命令进⼊⽂件尾部,然后输⼊ shfit+?,并且后⾯跟随你想要搜索的关键词,⽐如 ?NewCheckEntityStatusJob,回车,此时你想要看到的关键词都
此时,N 是逐个向上翻阅;shift+N 是逐个向下翻阅。Q 是退出⽇志界⾯。
1.99 杂家笔记
less log.log:shift + GG 命令到⽂件尾部,然后输⼊ ?加上你要搜索的关键字例如 ?1213 shift+n 关键字之间进⾏切换。
tac:则是由最后⼀⾏到第⼀⾏反向在萤幕上显⽰出来,与cat反过来。
history:所有的历史记录
history | grep XXX:历史记录中包含某些指令的记录
history | more:分页查看记录
history -c:清空所有的历史记录
uname -a:查看内核/操作系统/CPU信息
cat /proc/cpuinfo:查看CPU详细信息
hostname:查看计算机名称
env:查看系统环境变量
free -m:查看内存使⽤量、查看交换区使⽤量
df -h:查看各分区使⽤量
du -sh ⽬录名:查看指定⽬录的⼤⼩
du -sh ⽂件名:查看指定⽂件的⼤⼩
grep MemTotal /proc/meminfo:查看计算机是多⼤内存,常⽤的是8G=8388608kB
grep MemFree /proc/meminfo:查看计算机还剩余多少内存
uptime:查看系统运⾏时间、⽤户数量、负载
ifconfig:查看所有⽹络接⼝的属性
netstat -lntp:查看所有监听的端⼝号
ps -ef:查看所有进程
top:实时显⽰进程状态
last:查看⽤户登录这台机器的⽇志
rpm -qa:查看系统上安装的所有的软件包
wc app.log:app.log⽂件的统计信息 3、92、598 app.log。app.log ⽂件的⾏数为3、单词数92、字节数598。
2 正则表达式
2.1 grep:
# grep默认是区分⼤⼩写的,这⾥将匹配所有的⼩写字母: $ echo '1234\nabcd' | grep '[a-z]'
# 将匹配所有的数字: $ echo '1234\nabcd' | grep '[0-9]'
# 将匹配所有的数字:$ echo '1234\nabcd' | grep '[[:digit:]]'
# 将匹配所有的⼩写字母:$ echo '1234\nabcd' | grep '[[:lower:]]'
# 将匹配所有的⼤写字母:$ echo '1234\nabcd' | grep '[[:upper:]]'gzip是什么文件夹
# 将匹配所有的字母和数字,包括0-9,a-z,A-Z :$ echo '1234\nabcd' | grep '[[:alnum:]]'
# 将匹配所有的字母:$ echo '1234\nabcd' | grep '[[:alpha:]]'
| grep "[0-9]"
| grep "[[:digit:]]"
| grep "[[:alpha:]]"
| grep "[[:upper:]]"
| grep "[[:lower:]]"
| grep "[[:alnum:]]"
grep:Gloabal Search Regular Expression and Print out the line,意为全局搜索正则表达式并打印⽂本⾏。所以grep是⼀个强⼤的⽂本搜索⼯具。
grep与正则表达式联系紧密。
之后也会从这两个⼤的⽅⾯来详细介绍。grep命令的基本语法如下:grep [options] pattern [] options表⽰选项,具体的命令选项见下表。
pattern表⽰要匹配的模式(包括⽬标字符串、变量或者正则表达式)。
file表⽰要查询的⽂件名,可以是⼀个或者多个。pattern后⾯所有的字符串参数都会被理解为⽂件名。
选项说明
-c      只打印匹配的⽂本⾏的⾏数,不显⽰匹配的内容
-i匹配时忽略字母的⼤⼩写

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。