OpenWRT长期保存日志

25 年 9 月 10 日 星期三 (已编辑)
296 字
2 分钟

使用logrotate实现日志自动轮转,长期存储,可以自行到软件包中下载并安装logrotate。

配置logrotate

/etc/logrotate.d 目录中创建配置文件,此处配置nikki日志为例

/var/log/nikki/core.log {
    hourly
    rotate 4320
    missingok
    notifempty
    copytruncate
    dateext
    dateformat -%Y-%m-%d-%H.log
    su root root

    postrotate
        mkdir -p /opt/nikki/log
        mv /var/log/nikki/core.log-* /opt/nikki/log/ 2>/dev/null || true
    endscript
}
  • /var/log/nikki/core.log:日志文件
  • hourly:日志文件每小时轮转一次
  • rotate 4320:保留6个月日志
  • missingok:如果日志文件不存在,不会报错
  • notifempty:如果日志文件为空,则不进行轮转
  • copytruncate:先复制日志文件内容,然后清空原文件
  • dateext:使用日期作为轮转后日志文件的扩展名
  • dateformat -%Y-%m-%d-%H.log:指定轮转后日志文件的命名格式
  • su root root:以 root 用户和组运行日志轮转操作
  • postrotate ... endscript:在日志轮转完成后执行的脚本
    • 确保目录存在
    • 复制日志文件

配置定时执行

crontab -e

加入一行,每小时执行一次

0 * * * * /usr/sbin/logrotate /etc/logrotate.conf

清空日志

不会影响原程序继续写日志 配置内容:日志文件大于100M就清空

/var/log/nikki/core.log {
    size 100M
    rotate 0
    missingok
    notifempty
    copytruncate
    nocreate
}

Title: OpenWRT长期保存日志

Author: violet

Link: https://www.vio.vin/posts/openwrt-chang-qi-bao-cun-ri-zhi

Last updated: 2025 年 12 月 08 日 03:08


Commercial reuse requires permission from the site owner. For non-commercial reuse, keep the source and article link. Derivatives should stay under the same license.
This article is licensed under CC BY-NC-SA 4.0 .