A large number of log viewing commands for Linux servers to quickly locate errors

Quickly locate errors for a large number of logs
tail -f catalina.ou (dynamic view log)
cat catalina.ou (open log file from scratch)
You can use >nanjiangtest.txt to output a new log to view

[root@yesky logs]# cat -n catalina.out |grep 717892466 >nanjiangtest.txt

tail/head simple command to use:

[root@yesky logs]# tail -n number catalina.out Query the log of the last number line at the end of the log
[root@yesky logs]# tail -n + number catalina.out Query all logs after the number line
[root@yesky logs]# head -n number catalina.out Query the first number line logs in the log file
[root@yesky logs]# head -n -number catalina.out Query all logs except the last number line in the log file

1 Find the line number by keyword

There are very few logs obtained with grep, we need to check nearby logs. This is how I do it,
First: cat -n test.log | grep “keyword” to get the line number of the key log

[root@yesky logs]# cat -n catalina.out |grep 717892466
13230539 [11:07 17:47:11] INFO nanjiang: Edit Old Article: 717892466-2020-11-07 17:47:11
13230593 [11:07 17:47:15] INFO nanjiangSave Article ID IS: 717892466
13230595 717892466 article.getDisplayTime()1 = 2020-11-07 16:25:11
13230596 717892466 article.getDisplayTime()2 = 2020-11-07 16:25:11
13230601 [11:07 17:47:15] INFO Nanjiang 10.10.10.39 edit article 717892466 edit article

cat -n catalina.out|tail -n + 13230539|head -n 10
tail -n + 13230539 indicates to query the logs after line 13230539
head -n 10 means to check the first 10 records in the previous query results

[root@yesky logs]# cat -n catalina.out |tail -n + 13230539|head -n 10
13230539 [11:07 17:47:11] INFO nanjiang: Edit Old Article: 717892466-2020-11-07 17:47:11
13230540 [11:07 17:47:11] INFO Takes: 2 ms class com.tmg.cms.manager.dao.article.impl.ArticleContentDaoImpl getListByArticleId [NzE3ODkyNDY2] [int]
13230541 [11:07 17:47:11] INFO Takes: 1 ms class com.tmg.cms.manager.dao.resourceImage.impl.ResourceImageDaoImpl load
13230542 [11:07 17:47:11] INFO Takes: 0 ms class com.tmg.cms.manager.dao.resourceImage.impl.ResourceImageDaoImpl load
13230543 [11:07 17:47:11] INFO Takes: 1 ms class com.tmg.cms.manager.dao.resourceImage.impl.ResourceImageDaoImpl load
13230544 [11:07 17:47:11] INFO article.getImage3: /uploadImages/2020/312/02/3NXCRK4U3589_2.jpg
13230545 [11:07 17:47:11] INFO Takes: 0 ms class com.tmg.cms.manager.dao.resourceImage.impl.ResourceImageDaoImpl load
13230546 [11:07 17:47:11] INFO Takes: 2 ms class com.tmg.cms.manager.dao.privilege.impl.UserDaoImpl getUserByid
13230547 [11:07 17:47:11] INFO Takes: 57 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl selectSitemapWithoutAudit [MQ==] [int]
13230548 [11:07 17:47:11] INFO Takes: 5 ms class com.tmg.cms.manager.dao.forbidword.impl.ForbidwordDaoImpl getForbidwordBysiteid [MjI=] [int]

2 View logs within a specified time period

First of all, you need to perform log query within the range time period to check whether it exists within the current day.

grep '11:07 18:29:20' catalina.out
grep '11:07 18:31:11' catalina.out

query in time range

sed -n '/11:07 18:29:20/,/11:07 18:31:11/p' catalina.out
sed -n '/11:07 18:29:/,/11:07 18:31:/p' catalina.out

3 View the number of matches for a specific character in the log

[root@yesky logs]# grep '1175109632' catalina.out | wc -l
154

4 Query the last number row and find the keyword “result”

[root@yesky logs]# tail -n 20 catalina.out | grep 'INFO Takes:1'
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.config.impl.ConfigInfoDaoImpl load
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [NTkwOTQ5] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [MzI0] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [MzI3] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [MzMw] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [MzA5NA==] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [Mzc4Mg==] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [OTM1MA==] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [MTE5MDMw] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [NTQ2MzQw] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [NTg2NzYy] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [MzYyMjA=] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.configModule.impl.ConfigModuleDaoImpl getPersonMenuList

5 Query the last number line, and find the keyword “result” and mark the result in red

[root@yesky logs]# tail -n 20 catalina.out | grep 'INFO Takes:1' --color
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.config.impl.ConfigInfoDaoImpl load
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [NTkwOTQ5] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [MzI0] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [MzI3] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [MzMw] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [MzA5NA==] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [Mzc4Mg==] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [OTM1MA==] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [MTE5MDMw] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [NTQ2MzQw] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [NTg2NzYy] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [MzYyMjA=] [int]

6 Query the last number line, and find the keyword “result” and mark the result in red, and expand two lines up and down

[root@yesky logs]# tail -n 20 catalina.out | grep 'INFO Takes:1' --color -a2
[11:11 22:02:51] INFO Takes: 0 ms class com.tmg.cms.manager.dao.article.impl.ArticleContentDaoImpl getArticlePageNum [NzE4MTM2ODky] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.config.impl.ConfigInfoDaoImpl load [com.tmg.cms.manager.model.config.ConfigInfo]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [NTkwOTQ5] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [MzI0] [int]
[11:11 22:02:51] INFO Takes: 0 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [MzI1] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [MzI3] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [MzMw] [int]
[11:11 22:02:51] INFO Takes: 0 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [MzAzNg==] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [MzA5NA==] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [Mzc4Mg==] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [OTM1MA==] [int]
[11:11 22:02:51] INFO Takes: 0 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [MTE0MjQ4] [int]
[11:11 22:02:51] INFO Takes: 0 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [MTE4MDc4] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [MTE5MDMw] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [NTQ2MzQw] [int]
[11:11 22:02:51] INFO Takes: 0 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [NTQ3MTIw] [int]
[11:11 22:02:51] INFO Takes: 0 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [NTY4OTYx] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [NTg2NzYy] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.sitemap.impl.SitemapDaoImpl getSitemapTop [MzYyMjA=] [int]
[11:11 22:02:51] INFO Takes: 1 ms class com.tmg.cms.manager.dao.configModule.impl.ConfigModuleDaoImpl getPersonMenuList [com.tmg.cms.manager.model.config.ConfigPersonMenu]

7 Paging view, use spaces to turn pages (use more/less)

[root@yesky logs]# tail -n 2000 catalina.out | grep 'INFO Takes:1' --color -a2 | more
[root@yesky logs]# tail -n 2000 catalina.out | grep 'INFO Takes:1' --color -a2 | less
Additional:
1. Full screen navigation
ctrl + F - move forward one screen
ctrl + B - move back one screen
ctrl + D - move forward half a screen
ctrl + U - move back half a screen
2. One-way navigation
j - move forward one line
k - move backward one line
3. Other navigation
G - move to the last line
g - move to the first line
q / ZZ - Quit the less command