温馨提示×

linux nohup日志怎么检索

小樊
49
2026-09-18 14:33:47
栏目: 智能运维

在 Linux 下使用 nohup 启动程序时,通常会把输出重定向到日志文件(默认是 nohup.out,或你自己指定的文件)。检索日志本质上就是对日志文件进行查看和搜索。下面按常见场景给你总结一下。


一、nohup 日志一般在哪

1. 默认情况

nohup command &

日志会写到当前目录的:

nohup.out

2. 手动指定日志

nohup command > app.log 2>&1 &

日志在:

app.log

二、最基础的日志查看

实时查看日志(最常用)

tail -f app.log

或:

tail -fn 100 app.log   # 从最后100行开始实时看

查看最后 N 行

tail -n 200 app.log

查看最前面 N 行

head -n 200 app.log

三、日志内容检索(重点)

1. 用 grep 搜索关键字

grep "ERROR" app.log

忽略大小写:

grep -i "error" app.log

显示行号:

grep -n "ERROR" app.log

反向匹配(不包含):

grep -v "INFO" app.log

2. 实时检索日志(边写边搜)

tail -f app.log | grep "ERROR"

只看 ERROR 且带颜色:

tail -f app.log | grep --color "ERROR"

3. 多关键字检索

同时满足:

grep "ERROR" app.log | grep "timeout"

或关系:

grep -E "ERROR|WARN" app.log

4. 按时间范围检索

如果日志里有时间格式(如 2026-01-21 10:00:00):

grep "2026-01-21 10:" app.log

或区间:

awk '/2026-01-21 10:00/,/2026-01-21 11:00/' app.log

四、大日志文件高效检索

1. 统计某关键字出现次数

grep -c "ERROR" app.log

2. 分页查看

less app.log

在 less 中:

  • 输入 /ERROR 搜索
  • n 下一个
  • N 上一个
  • q 退出

3. 压缩日志检索

如果是 .gz 日志:

zgrep "ERROR" app.log.gz

五、常见组合示例

查最近 1000 行里的错误

tail -n 1000 app.log | grep "ERROR"

查某次启动后的日志

grep -n "Server started" app.log

然后用 sed 或 less 看后面内容。


六、小建议(很重要)

  1. 日志别只写 nohup.out,建议明确重定向:
    nohup java -jar app.jar > app.log 2>&1 &
    
  2. 生产环境配合 logrotate 管理日志大小
  3. 检索时优先用 tail + grep,不要一上来 vim 大文件

如果你愿意,可以告诉我:

  • 用的什么程序(Java / Python / Shell)
  • 日志格式样例
  • 想找什么问题(报错 / 性能 / 某个用户)

我可以直接帮你写精准的检索命令。

0 踩