如何设置Ubuntu Node.js日志的自动清理策略

发布时间 - 2025-06-02 00:00:00    点击率:

在ubuntu系统中,配置node.js应用程序日志的自动清理策略有多种途径。以下是几种常用的方法:

方法一:采用 logrotate 工具

logrotate 是一个专门用于日志管理的系统工具,能够自动对日志文件进行压缩、删除以及轮转操作。

  1. 安装 logrotate(如尚未安装)

     sudo apt-get update
     sudo apt-get install logrotate
  2. 构建或修改 logrotate 配置文件: 你需要针对你的Node.js应用创建一个 logrotate 的配置文件,通常放置于 /etc/logrotate.d/ 目录下。

     sudo nano /etc/logrotate.d/nodejs-app
  3. 输入配置信息: 在文件内加入如下内容,并依据实际状况调整路径与参数:

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

    说明:

    • daily: 每天进行日志轮转。
    • missingok: 日志文件若不存在,不会触发错误提示。
    • rotate 7: 保存最近7次轮转的日志记录。
    • compress: 将旧日志文件压缩。
    • notifempty: 若日志文件为空,则不执行轮转。
    • create 0640 root adm: 新建日志文件时,权限设为0640,属主为root,属组为adm。
  4. 验证配置: 手动检测 logrotate 配置是否有效:

     sudo logrotate -f /etc/logrotate.d/nodejs-app

方法二:利用 systemd 定时任务

若你使用 systemd 来管理Node.js应用,可设定一个定时任务以完成日志清理工作。

  1. 编写清理脚本: 建立一个脚本文件,比如 /usr/local/bin/clean-nodejs-logs.sh:

     sudo nano /usr/local/bin/clean-nodejs-logs.sh

    内容如下:

     #!/bin/bash
     LOG_DIR="/path/to/your/nodejs/app/logs"
     find "$LOG_DIR" -type f -name "*.log" -mtime  7 -exec rm -f {} \;

    解释:

    • -mtime 7: 删除超过7天的日志文件。
  2. 赋予脚本执行权限

     sudo chmod  x /usr/local/bin/clean-nodejs-logs.sh
  3. 设立 systemd 定时任务: 编辑一个 systemd 定时任务文件,例如 /etc/systemd/system/clean-nodejs-logs.timer:

     sudo nano /etc/systemd/system/clean-nodejs-logs.timer

    内容如下:

     [Unit]
     Description=Clean Node.js logs older than 7 days
    
     [Timer]
     OnCalendar=daily
     Persistent=true
    
     [Install]
     WantedBy=timers.target
  4. 建立 systemd 服务文件: 制作一个 systemd 服务文件,例如 /etc/systemd/system/clean-nodejs-logs.service:

     sudo nano /etc/systemd/system/clean-nodejs-logs.service

    内容如下:

     [Unit]
     Description=Clean Node.js logs older than 7 days
    
     [Service]
     ExecStart=/usr/local/bin/clean-nodejs-logs.sh
  5. 激活并启动定时任务

     sudo systemctl daemon-reload
     sudo systemctl enable clean-nodejs-logs.timer
     sudo systemctl start clean-nodejs-logs.timer

通过上述方法,你可以高效地管控Node.js应用的日志文件,防止其占用过多的存储空间。


# nodejs  # 工具  # ai  # JS  # ubuntu  # 配置文件  # 是一个  # 设为  # 几种  # 建立一个  # 若不  # 创建一个  # 有多种  # 为空  # 若你 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何在万网开始建站?分步指南解析  如何基于云服务器快速搭建个人网站?  ,怎么在广州志愿者网站注册?  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  Python进程池调度策略_任务分发说明【指导】  大学网站设计制作软件有哪些,如何将网站制作成自己app?  Python制作简易注册登录系统  用v-html解决Vue.js渲染中html标签不被解析的问题  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  制作旅游网站html,怎样注册旅游网站?  javascript中的try catch异常捕获机制用法分析  在centOS 7安装mysql 5.7的详细教程  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  教你用AI将一段旋律扩展成一首完整的曲子  如何用腾讯建站主机快速创建免费网站?  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  网站建设整体流程解析,建站其实很容易!  Laravel如何实现文件上传和存储?(本地与S3配置)  猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】  Swift开发中switch语句值绑定模式  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)  如何在云主机上快速搭建多站点网站?  javascript中对象的定义、使用以及对象和原型链操作小结  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  佛山网站制作系统,佛山企业变更地址网上办理步骤?  php json中文编码为null的解决办法  Bootstrap整体框架之JavaScript插件架构  Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)  如何选择可靠的免备案建站服务器?  郑州企业网站制作公司,郑州招聘网站有哪些?  米侠浏览器网页背景异常怎么办 米侠显示修复  如何在橙子建站上传落地页?操作指南详解  Java解压缩zip - 解压缩多个文件或文件夹实例  jquery插件bootstrapValidator表单验证详解  如何在服务器上三步完成建站并提升流量?  如何快速搭建高效服务器建站系统?  Android使用GridView实现日历的简单功能  C语言设计一个闪闪的圣诞树  Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势  怎么用AI帮你设计一套个性化的手机App图标?  Laravel如何自定义分页视图?(Pagination示例)  香港服务器WordPress建站指南:SEO优化与高效部署策略  linux写shell需要注意的问题(必看)  Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  linux top下的 minerd 木马清除方法  免费视频制作网站,更新又快又好的免费电影网站?