最近需要经常上服务器查日志,因为上份工作日志都接了ELK,不用登服务器去看,太久没用发现有些命令已经生疏了,正好趁此机会温习并整理了一些常见的命令和使用场景,记录下来。
注:下面的每条命令结尾基本都接了 | less,这是博主个人习惯以浏览文件方式打开查找到的日志,避免在控制台打印出大量的日志,不是必须的命令。
常见场景
场景一:查找关键字所在行
1. cat -n x.log | grep "keyword"
2. grep "keyword" x.log | less
3. 或者直接less x.log,然后在里面通过/或?向上或向下筛选关键字
场景二:查找关键字及前后几行日志
1. grep -B 5 -A 10 "keyword" x.log | less -显示关键字及前5行,后10行
2. grep -C 10 "keyword" x.log | less -显示关键字及前后10行
场景三:实时监控新日志
1、tail -100f x.log -实时监控最后100行日志
场景四:head查看头部日志
1. head x.log -默认查看头10行日志
2. head -n 100 x.log | less -查看头100行日志
3. head -100 x.log | less -查看头100行日志
场景五:tail查看尾部日志
1. tail x.log | less -默认查看最后10行日志
2. tail -n 5 x.log -查看尾部最后5行日志
3. tail -n +10 x.log -查看10行之后的所有日志
场景六:按行截取
1. tail -n +1000 x.log | head -n 10 | less -从第1000行开始,显示10行
2. head -n 1000 x.log | tail -n + 900 | less -显示900-1000行
head -n 1000 x.log | tail -n 100 | less -显示900-1000行
3. sed -n '900,1000p' x.log | less -显示900-1000行
场景七:按日期时间截取
1. sed -n '/2021-06-28 16:17:18/,/2021-06-28 16:20:18/p' x.log | less -两个日期值必须是日志文件中包含的值,可以先grep一下确定是否存在
2. sed -n '/2021-06-28 16:17:18.569/,/2021-06-28 16:20:18.673/p' x.log | less -具体到毫秒数查找