Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何监视特定文件夹并将该文件夹中每个日志文件的内容保存到mysql数据库_Mysql_Ruby On Rails_Ruby_Linux_Rsyslog - Fatal编程技术网

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

如何监视特定文件夹并将该文件夹中每个日志文件的内容保存到mysql数据库,mysql,ruby-on-rails,ruby,linux,rsyslog,Mysql,Ruby On Rails,Ruby,Linux,Rsyslog,我们正在为我们的QA人员开发一项服务 主要目标是,我们的web界面的测试人员能够从github分支中选择此特定机器的转储,然后单击Deploy按钮,然后将用于测试的rails应用程序部署到Digital Ocean 我现在正在使用的功能是收集部署日志并通过我们的web界面显示它们 在DO droplet上有一个日志文件夹,其中包含部署期间填充的不同日志文件: 迁移{result{machine\u id}.log、bundle\u result{machine\u id}.log等 其中{mac

我们正在为我们的QA人员开发一项服务

主要目标是,我们的web界面的测试人员能够从github分支中选择此特定机器的转储,然后单击Deploy按钮,然后将用于测试的rails应用程序部署到Digital Ocean

我现在正在使用的功能是收集部署日志并通过我们的web界面显示它们

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

迁移{result{machine\u id}.log、bundle\u result{machine\u id}.log等

其中{machine_id}是我们服务上部署的机器的id,而不是水滴id

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

因此在/var/log/deplogs/中,我们有:

迁移\u结果\u 1.log、捆绑\u结果\u 1.log、

迁移\u结果\u 2.log、捆绑\u结果\u 2.log、,

迁移\u结果\u n.log、捆绑\u结果\u n.log

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

我需要实现如下Ruby代码:

Machine.find(#{machine_id}).logs.create!(text: "migrations_result_#{machine_id}.log contents")
Rsyslog似乎无法实现这一点。还是我遗漏了什么? 有什么建议吗


提前谢谢,我的英语很抱歉,我希望你能明白我的意思。

首先,祝贺你!你正面临一个美丽的问题。我的建议是使用分而治之的方法

以下是我的考虑:

将相关文件夹置于版本控制之下,例如GIT 通过GIT命令检查每X时间更改一次的文件。 还可以获取每个文件的早期版本与新版本之间的差异,这样您就可以通过解析新信息来更新数据库。 为了以防万一,我们提供了一些从ruby调用系统命令的方法

希望有帮助