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
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
- » 为追加
- > 为重定向,会覆盖原先的内容