温馨提示×

centos nohup日志怎样分析

小樊
38
2026-09-12 02:25:18
栏目: 智能运维

在 CentOS 上使用 nohup 运行的程序,通常会把输出重定向到日志文件(最常见是 nohup.out 或你自己指定的日志文件)。分析这些日志,一般可以从定位日志、查看内容、过滤关键信息、结合系统工具、定位问题几个方面来做。


一、确认 nohup 日志在哪

1. 默认情况

nohup command &

默认日志文件:

nohup.out

一般在当前工作目录下。

2. 自己指定了日志

nohup command > app.log 2>&1 &

日志就在:

app.log

查看进程对应的日志文件:

ps -ef | grep command
ls -l /proc/<PID>/fd

二、基本查看方式

1. 实时查看日志(最常用)

tail -f nohup.out

tail -100f app.log

2. 查看最后 N 行

tail -n 200 nohup.out

3. 查看最开始的内容

head -n 100 nohup.out

4. 全量查看(大文件慎用)

less nohup.out
  • G 跳到末尾
  • /关键字 搜索

三、日志分析与过滤

1. 按关键字过滤

grep "ERROR" nohup.out
grep -i "exception" app.log

2. 显示关键字及前后内容

grep -C 5 "ERROR" nohup.out

3. 统计错误次数

grep -c "ERROR" nohup.out

4. 按时间分析(日志有时间戳时)

grep "2026-01-21 10:" nohup.out

四、结合系统工具分析

1. 看进程是否还活着

ps -ef | grep command
top -p <PID>

2. 看资源占用

free -h
df -h

3. 看系统日志(辅助)

journalctl -xe
/var/log/messages

五、常见问题分析思路

1. 程序自动退出

重点看:

  • Exception
  • Segmentation fault
  • Killed
  • OutOfMemory

2. 日志不更新

可能原因:

  • 程序卡死
  • 输出被缓冲(Java/Python 常见)
  • 日志写到了别的地方

3. 日志过大

du -sh nohup.out

建议:

  • 使用 logrotate
  • 程序内做日志切割

六、推荐做法(生产环境)

nohup command >> /var/log/app/app.log 2>&1 &

并配置 logrotate

/var/log/app/*.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
}

如果你愿意,可以把日志片段或命令发出来,我可以帮你具体看是哪种问题(Java / Python / Shell / 服务崩溃等)。

0