温馨提示×

怎样过滤nohup日志内容

小樊
49
2026-09-03 10:37:55
栏目: 编程语言

nohup 命令通常会把输出重定向到 nohup.out 或你指定的日志文件。要“过滤”日志内容,常见需求和做法如下:


一、实时查看并过滤日志(类似 tail + grep)

1. 实时跟踪日志并过滤关键字

tail -f nohup.out | grep "ERROR"

只看包含 ERROR 的日志。

2. 忽略某些关键字(反向过滤)

tail -f nohup.out | grep -v "DEBUG"

不显示 DEBUG 日志。

3. 多关键字过滤

tail -f nohup.out | grep -E "ERROR|WARN"

显示 ERRORWARN


二、查看历史日志并过滤(不实时)

1. 过滤某关键字

grep "ERROR" nohup.out

2. 显示行号

grep -n "ERROR" nohup.out

3. 统计出现次数

grep -c "ERROR" nohup.out

4. 过滤时间范围(如某天)

grep "2024-01-01" nohup.out

三、启动时直接过滤(推荐)

1. 只保存错误日志

nohup your_command 2> error.log 1> /dev/null &

2. 标准输出和错误分开

nohup your_command > out.log 2> err.log &

3. 边运行边过滤(用 tee + grep)

nohup your_command 2>&1 | grep "ERROR" > error.log &

四、日志太大时的处理

1. 查看最后 100 行并过滤

tail -n 100 nohup.out | grep "ERROR"

2. 分页查看

less nohup.out

less 中搜索:

/ERROR

五、常见组合示例

tail -f nohup.out | grep --line-buffered "ERROR"

--line-buffered 保证实时输出)


如果你能具体说明:

  • 日志文件叫什么
  • 想过滤什么内容(错误 / 时间 / 某个用户)
  • 是实时看还是事后分析

我可以给你更精确的命令。

0