2020-12-24 Linux查找日志指令总结

查询Nginx或MySQL日志时,使用一些linux指令会更加高效。

一、find命令
find ./ -mtime 0:返回最近24小时内修改过的文件。
find ./ -mtime 1 : 返回的是前48~24小时修改过的文件。而不是48小时以内修改过的文件。
那怎么返回10天内修改过的文件?find还可以支持表达式关系运算,所以可以把最近几天的数据一天天的加起来:
find ./ -mtime 0 -o -mtime 1 -o -mtime 2 ……虽然比较土,但也算是个方法了。
查找最近30分钟修改的当前目录下的.php文件
find . -name '.php' -mmin -30
查找最近24小时修改的当前目录下的.php文件
find . -name '
.php' -mtime 0
查找最近24小时修改的当前目录下的.php文件,并列出详细信息
find . -name '*.inc' -mtime 0 -ls
查找当前目录下,最近24-48小时修改过的常规文件。
find . -type f -mtime 1
查找当前目录下,最近1天前修改过的常规文件。
find . -type f -mtime +1

二、head/tail命令
head -n 10 test.log 查询日志文件中的头10行日志;
head -n -10 test.log 查询日志文件除了最后10行的其他所有日志;
实时监控日志
tail -f /www/wwwlogs/access.log
跟踪正在创建的新日志文件,并开始跟踪新文件而不是旧文件。
tail -F /var/log/apache2/access.log
实时监控多个日志文件
multitail /var/log/apache2/access.log /var/log/apache2/error.log
lnav /var/log/apache2/access.log /var/log/apache2/error.log
tail -100f test.log #实时监控100行日志
tail -n 10 test.log #查询日志尾部最后10行的日志;
tail -n +10 test.log # 查询10行之后的所有日志;

三、cat/tac命令
将查询结构写入到文件
cat -n test.log | grep "debug" > debug.txt
查找文件text中第二行到第四行的内容
cat filename | head -n 3000 | tail -n +1000
tac是倒序,用法同cat

四、more/less
分页查看文件
cat -n test.log | grep "debug" | more
cat -n test.log | grep "debug" | less
more 和 less的区别:

  1. less可以按键盘上下方向键显示上下内容,more不能通过上下方向键控制显示
  2. less不必读整个文件,加载速度会比more更快
  3. less退出后shell不会留下刚显示的内容,而more退出后会在shell上留下刚显示的内容

五、sed命令
查找文件text中第三行的内容
sed -n '3p' text
查找文件text中第二行到第四行的内容
sed -n '1000,3000p' text
等价于
根据日期查询日志
sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容