温馨提示×

nohup日志时间不对怎办

小樊
42
2026-09-30 15:32:38
栏目: 编程语言

nohup 本身不会记录日志时间,它只是把程序输出重定向到文件(如 nohup.out)。
所谓“日志时间不对”,通常有以下几种情况和对应解决办法:


一、日志里没有时间(最常见)

nohup.out 里只有程序输出,没有时间戳。

✅ 解决:让程序自己打时间

  • 如果是你自己的程序:
    • Python:用 logging 并设置 format 带时间
    • Java:用 logback / log4j
    • Shell:
      echo "$(date '+%F %T') some log" >> nohup.out
      

二、日志时间比系统时间慢/快(时区问题)

常见于 Docker、云服务器。

✅ 检查时区

date
timedatectl

✅ 修正时区(以中国为例)

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

三、nohup 启动时间显示不对

你指的是 ps / top 里看到的时间不对。

✅ 那其实是 进程启动时间,由系统决定:

  • 确认系统时间是否准确:
    date
    
  • 同步时间:
    ntpdate pool.ntp.org
    # 或
    timedatectl set-ntp true
    

四、Docker / 容器中 nohup 日志时间错

容器和系统时间不一致。

✅ 启动容器时挂载时区:

-v /etc/localtime:/etc/localtime:ro

五、日志时间“跳跃”

可能是:

  • 系统时间被修改
  • 程序用了 UTC
  • 日志轮转(logrotate)

快速排查清单

date                 # 系统时间
timedatectl          # 时区
cat /etc/timezone    # 时区文件

如果你能具体说:

  • 是 nohup.out 没时间
  • 还是 时间慢 8 小时
  • 还是 Docker 里不对

我可以直接给你最精确的改法。

0 踩