Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

增加定时清理 log 日志(急) #1271

Open
5 tasks done
c121914yu opened this issue Apr 4, 2024 · 4 comments · May be fixed by #1400
Open
5 tasks done

增加定时清理 log 日志(急) #1271

c121914yu opened this issue Apr 4, 2024 · 4 comments · May be fixed by #1400
Labels
enhancement New feature or request

Comments

@c121914yu
Copy link
Contributor

例行检查

  • 我已确认目前没有类似 issue
  • 我已确认我已升级到最新版本
  • 我已完整查看过项目 README,已确定现有版本无法满足需求
  • 我理解并愿意跟进此 issue,协助测试和提供反馈
  • 我理解并认可上述内容,并理解项目维护者精力有限,不遵循规则的 issue 可能会被无视或直接关闭

log会保存在 /data/log 下,但是不会自动清除,长时间运行后导致超出临时存储限制。
并且,挂载pvc后,每次重启后,并不会清空日志,导致磁盘直接满了无法启动。

解决方案

  1. 页面上增加手动清空log日志
  2. 定时清理
@c121914yu c121914yu added the enhancement New feature or request label Apr 4, 2024
@RexWzh
Copy link

RexWzh commented Apr 4, 2024

自定义一个 crontab 任务就行了吧,这样你想怎么定制都可以


要建立一个自动清理任务,通常使用 cron 作业是最简单的方法。 下面是如何设置一个 cron 作业来定期清空 /data/log 目录下的 one-api.log 日志文件的步骤:

  1. 打开终端。

  2. 运行 crontab -e 命令来编辑当前用户的 cron 文件。 如果你是第一次运行 crontab -e 可能会让你选择一个文本编辑器来编辑这个文件。

  3. 在打开的文件中,你要添加一行,指定 cron 作业的时间和运行的命令。 下面是 cron 的时间格式:

    * * * * * command to be executed
    - - - - -
    | | | | |
    | | | | +----- day of week (0 - 6) (Sunday=0)
    | | | +------- month (1 - 12)
    | | +--------- day of month (1 - 31)
    | +----------- hour (0 - 23)
    +------------- min (0 - 59)
    

    举例来说,如果你想每天凌晨3点清空日志文件,你可以添加以下内容:

    0 3 * * * > /data/log/one-api.log
    

    这里的 > 是重定向操作符,用于清空文件内容。 如果你想删除日志文件而不是清空内容,那么可以使用 rm 命令,不过这样会完全删除文件,如果软件依赖于这个文件的存在,它可能会出错,所以使用 > 更安全。

  4. 保存并退出编辑器。 cron 将自动安装你的新作业。

确保 /data/log/one-api.log 文件对于执行 cron 作业的用户是可写的。 否则,清空命令将不起作用。

注意:在某些系统上,例如 Ubuntu,可能要求你使用 sudo 来运行 crontab -e 命令来编辑系统级别的 cron 作业,而不仅仅是当前用户的。

@c121914yu
Copy link
Contributor Author

自定义一个 crontab 任务就行了吧,这样你想怎么定制都可以


要建立一个自动清理任务,通常使用 cron 作业是最简单的方法。 下面是如何设置一个 cron 作业来定期清空 /data/log 目录下的 one-api.log 日志文件的步骤:

  1. 打开终端。

  2. 运行 crontab -e 命令来编辑当前用户的 cron 文件。 如果你是第一次运行 crontab -e 可能会让你选择一个文本编辑器来编辑这个文件。

  3. 在打开的文件中,你要添加一行,指定 cron 作业的时间和运行的命令。 下面是 cron 的时间格式:

    * * * * * command to be executed
    - - - - -
    | | | | |
    | | | | +----- day of week (0 - 6) (Sunday=0)
    | | | +------- month (1 - 12)
    | | +--------- day of month (1 - 31)
    | +----------- hour (0 - 23)
    +------------- min (0 - 59)
    

    举例来说,如果你想每天凌晨3点清空日志文件,你可以添加以下内容:

    0 3 * * * > /data/log/one-api.log
    

    这里的 > 是重定向操作符,用于清空文件内容。 如果你想删除日志文件而不是清空内容,那么可以使用 rm 命令,不过这样会完全删除文件,如果软件依赖于这个文件的存在,它可能会出错,所以使用 > 更安全。

  4. 保存并退出编辑器。 cron 将自动安装你的新作业。

确保 /data/log/one-api.log 文件对于执行 cron 作业的用户是可写的。 否则,清空命令将不起作用。

注意:在某些系统上,例如 Ubuntu,可能要求你使用 sudo 来运行 crontab -e 命令来编辑系统级别的 cron 作业,而不仅仅是当前用户的。

可以是可以,不过在 k8s 中有点麻烦,还得连接 pod 才能删除,并且可能多个节点,名字不是固定的。每个系统都得操作下,有点麻烦。

@songquanpeng
Copy link
Owner

我得想一想怎么处理好一些,感觉由服务自己去清理日志有点奇怪

@c121914yu
Copy link
Contributor Author

c121914yu commented Apr 25, 2024

我得想一想怎么处理好一些,感觉由服务自己去清理日志有点奇怪

加个手动清理或者可配置,或者只有error才写入,其他不要写入。
现在几天不用,好几个G日志,,时不时担心服务器爆满。。。

@linzeliang1222 linzeliang1222 linked a pull request Apr 30, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants