商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > Node.js在Ubuntu上日志轮转怎么做

Node.js在Ubuntu上日志轮转怎么做

  发布于2026-07-16 阅读(0)

扫一扫,手机访问

日志管理是运维工作里最容易被忽视、但又影响深远的一环。Node.js 应用跑久了,日志文件动不动就上 GB,既不便于排查问题,还会把磁盘占满。用 logrotate 来做日志轮转,几乎是 Ubuntu 上的标准做法——简单、可靠、不需要额外写脚本。下面就把这个流程拆开来说。

Node.js在Ubuntu上日志轮转怎么做

安装 logrotate

Ubuntu 系统通常预装了 logrotate,但如果没装,一条命令就能搞定:

sudo apt-get update
sudo apt-get install logrotate

装完之后,它就已经在后台待命了——每天自动运行一次,检查并处理日志轮转规则。

为 Node.js 应用创建专属配置

配置文件放在 /etc/logrotate.d/ 目录下,每个应用一个文件,方便管理。假设你的应用名字叫 myapp,执行:

sudo nano /etc/logrotate.d/myapp

然后在文件里写入以下内容(记得把路径替换成你自己的日志目录):

/path/to/your/nodejs/app/logs/*.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
    create 0640 root adm
}

每一行的含义很直白:

  • daily:每天轮转一次
  • rotate 7:保留最近 7 天的日志文件,更早的自动删除
  • compress:轮转后把旧日志压缩成 .gz,节省磁盘空间
  • missingok:如果日志文件不存在,不会报错,直接跳过
  • notifempty:日志为空时不轮转,避免产生大量空文件
  • create 0640 root adm:轮转后用指定的权限和属主创建新的空日志文件,保证应用能继续写入

这里的权限和属主可以根据实际情况调整——关键是新日志文件的用户和组要与跑 Node 进程的用户匹配,否则应用会报错写不进去。

验证配置是否生效

配置文件写完后,不能光靠想象,跑一下测试命令看看有没有语法错误:

sudo logrotate -f /etc/logrotate.d/myapp

如果配置正确,会看到类似:

reading config file /etc/logrotate.d/myapp
Handling 1 lines

这就说明轮转规则已经被正常解析并执行了一次。首次运行后,你可以去日志目录看看,旧日志应该已经被压缩并重命名了。

自动轮转的机制

配置好之后,你不需要再手动干预。系统每天会通过 cron 任务(/etc/cron.daily/logrotate)触发 logrotate,它会检查所有配置文件,按规则处理日志。如果想立即手动触发一次轮转,直接用刚才的 -f 命令即可。

这套方案几乎零维护——日志不会无限膨胀,旧数据按天自动清理,磁盘空间始终保持可控。对于大多数 Node.js 应用场景,这已经够用了。如果遇到高并发写入、日志格式特殊等情况,还可以在配置里加入 postrotate 脚本,在轮转后通知应用重新打开日志文件(比如通过 kill -HUP 信号)。不过那是进阶话题,以后有机会再聊。

本文转载于:https://www.yisu.com/ask/47482264.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注