gpt4 book ai didi

mysql - 如何监控特定文件夹并将该文件夹中每个日志文件的内容保存到mysql数据库

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:36:13 24 4
gpt4 key购买 nike

我们正在为我们的质量检查人员开发一项服务。

主要目标是我们的 Web 界面的测试人员能够从 github 分支为这台特定机器选择转储并单击“部署”按钮,然后用于测试的 Rails 应用程序将部署到 Digital Ocean。

我现在正在开发的功能是收集部署日志并通过我们的网络界面显示它们。

在 DO droplet 上有一个“日志”文件夹,其中包含在部署期间填充的不同日志文件:

migrations_result_#{machine_id}.logbundle_result_#{machine_id}.log

其中 #{machine_id} 是我们服务上部署的机器的 ID(它不是 Droplet ID)。

remote_syslog gem 的帮助下,我们正在监控每个 droplet 上的“日志”文件夹,并通过 udp 将它们发送到我们的主服务服务器,并在 rsyslog 的帮助下我们将它们存储在一个特定的文件夹中,比方说 /var/log/deplogs/

所以在 /var/log/deplogs/ 中我们有:

migrations_result_1.log、bundle_result_1.log、

migrations_result_2.log、bundle_result_2.log、
...

migrations_result_n.log, bundle_result_n.log

我需要如何监控这个文件夹并将每个日志文件的内容保存到mysql数据库?

我需要实现如下(Ruby 代码):

Machine.find(#{machine_id}).logs.create!(text: "migrations_result_#{machine_id}.log contents")

Rsyslog 似乎无法实现这一点。或者我错过了什么?有什么建议吗?

提前致谢,对不起我的英语,我希望你能明白这个想法。

最佳答案

首先恭喜你!你面前是一个美丽的问题。我的建议是分而治之。

这是我的考虑:

  • 将相关文件夹置于版本控制之下(例如 GIT)
  • 通过 GIT 命令检查每 X 次更改的文件。
  • 同时获取每个文件的先前版本与新版本之间的差异,以便您可以更新您的数据库以解析新信息。

以防万一,here是从 ruby​​ 调用系统命令的方法。

希望对你有帮助,

关于mysql - 如何监控特定文件夹并将该文件夹中每个日志文件的内容保存到mysql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18207839/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com