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

Ubuntu 系统通常预装了 logrotate,但如果没装,一条命令就能搞定:
sudo apt-get update
sudo apt-get install logrotate
装完之后,它就已经在后台待命了——每天自动运行一次,检查并处理日志轮转规则。
配置文件放在 /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
}
每一行的含义很直白:
.gz,节省磁盘空间这里的权限和属主可以根据实际情况调整——关键是新日志文件的用户和组要与跑 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 信号)。不过那是进阶话题,以后有机会再聊。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8