Linux 操作系统对log的一些处理手段的记录

一些命令

kill

ps -ef | grep python  # 查进程 ID
kill -9 PID           # 慎用

kill、killall、pkill命令的区别:

  • kill:通过pid来杀死进程
  • killall (killall [参数] [进程名]): Linux系统中的killall命令用于杀死指定名字的进程(kill processes by name)。我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一,是一个很好用的命令。
  • pkill: pkill 和killall 应用方法差不多,也是直接杀死运行中的程式;如果你想杀掉单个进程,请用kill 来杀掉。例子: pkill -9 firefox

tail

tail -100f test.log    # 实时监控100行日志
tail -n 10 test.log    # 查询日志尾部最后10行的日志;
tail -n +10 test.log   # 查询10行之后的所有日志;
head -n 10 test.log   # 查询日志文件中的头10行日志
head -n -10 test.log  # 查询日志文件除了最后10行的其他所有日志

grep

grep [options] pattern [files]

grep [-abcEFGhHilLnqrsvVwxy][-A<显示行数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
  • pattern - 表示要查找的字符串或正则表达式。
  • files - 表示要查找的文件名,可以同时查找多个文件,如果省略 files 参数,则默认从标准输入中读取数据。

实例

1、查找关键字及其前后的信息

cat error.log | grep 'nick'      # 显示nick
cat error.log | grep -B 5 'nick' # 显示nick及前5行
cat error.log | grep -A 5 'nick' # 显示nick及后5行
cat error.log | grep -C 5 'nick' # 显示file文件里匹配nick字串那行以及上下5行
cat error.log | grep -n -B10 -A10 5 'nick' # 显示file文件里匹配nick字串前后10行
cat error.log | gtail -100f error.log    # 实时监控100行日志
cat error.log | gtail -n 10 error.log    # 显示尾部最后10行的日志;
cat error.log | gtail -n +10 error.log   # 显示第10行之后的所有日志;
cat error.log | head -n 50       # 显示头部10行日志
cat error.log | head -n -50      # 显示除了最后10行的其他所有日志


2、选取日志中特定范围进行分析

cat -n test.log |tail -n +1000|head -n 20       # 从第1000行开始,显示20行
cat catalina.out | head -n 1400| tail -n +1350  # 显示1350行到1400行
  • tail -n +1000表示查询1000行之后的日志
  • head -n 20 则表示在前面的查询结果里再查前20条记录

3、日志内容特别多需要分页打印

cat -n test.log |grep "debug" |more   # 可以通过点击空格键翻页
cat -n test.log |grep "debug" >debug.txt  # 将其保存到文件中, 可以拉下这个文件分析

4、看查占用cpu最多的进程

ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%cpu | head
  • -e:选择所有进程
  • -o:自定义输出格式
  • –sort=-%cpu:基于 CPU 使用率对输出结果排序
  • head:显示结果的前 10 行
  • PID:进程的 ID
  • PPID:父进程的 ID
  • %MEM:进程使用的 RAM 比例
  • %CPU:进程占用的 CPU 比例
  • Command:进程名字

5、找到最耗CPU的进程对应的服务名

ps aux | fgrep pid

6、查看某个端口的连接情况

netstat -lap | fgrep port
lsof -i :port

7、归档压缩文件导出指定内容到文件

zcat filename |grep 'keyword' > output.txt
  • » 为追加
  • > 为重定向,会覆盖原先的内容