温馨提示×

怎样分析debian nohup日志

小樊
35
2026-10-16 06:14:29
栏目: 智能运维

在 Debian(或其他 Linux 系统)上,使用 nohup 运行的程序通常会把输出重定向到日志文件(默认是 nohup.out,或你手动指定的文件)。分析这些日志,一般可以从以下几个层面入手:


一、确认日志文件位置

1. 默认情况

nohup command &

日志默认生成在:

./nohup.out

2. 手动重定向

常见写法:

nohup command > app.log 2>&1 &

或

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

日志就在 app.log。

查看当前进程对应的日志:

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

二、基础日志查看方法

1. 实时查看(最常用)

tail -f app.log
# 或
tail -F app.log   # 文件被重建也能继续跟踪

2. 查看最近内容

tail -n 200 app.log

3. 从头查看

less app.log
# 或
head -n 100 app.log

三、按关键字分析日志

1. 查找错误

grep -i error app.log
grep -i exception app.log

2. 查找某个时间段的日志

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

3. 统计错误次数

grep -c error app.log

四、结合系统工具分析

1. 查看进程状态

ps aux | grep command
top -p <PID>

2. 查看系统日志(程序崩溃时)

journalctl -xe
dmesg | tail

3. 查看 OOM(内存不足)

dmesg | grep -i oom

五、日志分析进阶

1. 按时间排序分析

awk '/2026-01-21/ {print}' app.log

2. 提取结构化信息(如耗时)

grep "cost" app.log | awk '{print $NF}'

3. 日志过大处理

# 按大小分割
split -b 100M app.log app_part_

# 压缩旧日志
gzip app.log.old

六、常见问题排查思路

  1. 程序没启动

    • 看 nohup.out 是否有报错
    • 是否缺少依赖(ldd)
  2. 程序运行中退出

    • 查 error / traceback
    • 查系统 dmesg
  3. 日志不更新

    • 确认进程是否还活着
    • 是否输出被缓冲(Python 可加 -u)

七、推荐做法(避免日志问题)

nohup python -u app.py >> app.log 2>&1 &

或使用 systemd(更规范):

[Service]
ExecStart=/path/app
StandardOutput=append:/var/log/app.log

如果你有具体的日志内容或程序类型(如 Python / Java / Node),我可以帮你做更针对性的分析。

0 踩