one-api
one-api copied to clipboard
增加定时清理 log 日志(急)
例行检查
- [x] 我已确认目前没有类似 issue
- [x] 我已确认我已升级到最新版本
- [x] 我已完整查看过项目 README,已确定现有版本无法满足需求
- [x] 我理解并愿意跟进此 issue,协助测试和提供反馈
- [x] 我理解并认可上述内容,并理解项目维护者精力有限,不遵循规则的 issue 可能会被无视或直接关闭
log会保存在 /data/log 下,但是不会自动清除,长时间运行后导致超出临时存储限制。 并且,挂载pvc后,每次重启后,并不会清空日志,导致磁盘直接满了无法启动。
解决方案
- 页面上增加手动清空log日志
- 定时清理
自定义一个 crontab 任务就行了吧,这样你想怎么定制都可以
要建立一个自动清理任务,通常使用 cron 作业是最简单的方法。 下面是如何设置一个 cron 作业来定期清空 /data/log
目录下的 one-api.log
日志文件的步骤:
-
打开终端。
-
运行
crontab -e
命令来编辑当前用户的 cron 文件。 如果你是第一次运行crontab -e
可能会让你选择一个文本编辑器来编辑这个文件。 -
在打开的文件中,你要添加一行,指定 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
命令,不过这样会完全删除文件,如果软件依赖于这个文件的存在,它可能会出错,所以使用>
更安全。 -
保存并退出编辑器。 cron 将自动安装你的新作业。
确保 /data/log/one-api.log
文件对于执行 cron 作业的用户是可写的。 否则,清空命令将不起作用。
注意:在某些系统上,例如 Ubuntu,可能要求你使用 sudo
来运行 crontab -e
命令来编辑系统级别的 cron 作业,而不仅仅是当前用户的。
自定义一个 crontab 任务就行了吧,这样你想怎么定制都可以
要建立一个自动清理任务,通常使用 cron 作业是最简单的方法。 下面是如何设置一个 cron 作业来定期清空
/data/log
目录下的one-api.log
日志文件的步骤:
打开终端。
运行
crontab -e
命令来编辑当前用户的 cron 文件。 如果你是第一次运行crontab -e
可能会让你选择一个文本编辑器来编辑这个文件。在打开的文件中,你要添加一行,指定 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
命令,不过这样会完全删除文件,如果软件依赖于这个文件的存在,它可能会出错,所以使用>
更安全。保存并退出编辑器。 cron 将自动安装你的新作业。
确保
/data/log/one-api.log
文件对于执行 cron 作业的用户是可写的。 否则,清空命令将不起作用。注意:在某些系统上,例如 Ubuntu,可能要求你使用
sudo
来运行crontab -e
命令来编辑系统级别的 cron 作业,而不仅仅是当前用户的。
可以是可以,不过在 k8s 中有点麻烦,还得连接 pod 才能删除,并且可能多个节点,名字不是固定的。每个系统都得操作下,有点麻烦。
我得想一想怎么处理好一些,感觉由服务自己去清理日志有点奇怪
我得想一想怎么处理好一些,感觉由服务自己去清理日志有点奇怪
加个手动清理或者可配置,或者只有error才写入,其他不要写入。 现在几天不用,好几个G日志,,时不时担心服务器爆满。。。