【问题标题】:How to share my Rail's log file realtime如何实时共享我的 Rail 日志文件
【发布时间】:2014-03-05 13:59:57
【问题描述】:

我有运行 Rails 应用程序的 Ubuntu 机器。我想与其他开发人员共享日志文件,以便他们可以使用如下命令实时查看应用程序发生的情况:

tail -f ~/railsapp/log/staging.log

在不暴露 Rails 应用程序中嵌入的所有密码、API 密钥等的情况下,最好的方法是什么?

我可以使用以下命令创建组和用户:

groupadd logviewer
adduser lv1 --ingroup logviewer

然后删除其他人的权限

chmod -R o-rwx ~/railsapp

然后重新添加其他人的读取权限

chmod -R o+rx ~/railsapp/log

这种方法有什么后果吗?有没有更好的办法?

2014 年 3 月 5 日添加 - 看起来这也是个好主意:

chmod -R o+rx ~/railsapp/public

添加于 2014 年 4 月 14 日 - 您还需要允许日志目录的路径...所以:

chmod o+rx ~/railsapp
chmod o+rx ~/railsapp/log

【问题讨论】:

  • 这是临时设置还是您希望长期使用?
  • 首选长期设置。谢谢!
  • 你解决了吗?

标签: ruby-on-rails linux ubuntu logging


【解决方案1】:

您可以只授予 logviewers 对除 rails dirs 之外的目录的读取和遍历访问权限(r+x),在该目录中他们没有读取权限,但只有通过日志文件路径的遍历权限,并建立到日志文件的软链接。

ln -s /railsapp/log/staging.log /to/somewhere/staging.log

logviewers 应该可以访问日志文件和路径 /to/somewhere。这个想法是让他们只读取日志,而不能读取 railsapp 下的所有其他文件。

【讨论】:

    【解决方案2】:

    如果您不想设置文件共享,并且还有一些更长期的东西,我会推荐一些对日志文件进行轻量级 http 包装器的东西。

    更多选项请参考this question,但我的建议如下:

    使用 tailon 并将其设置为查看您的 Rails 日志:

    tailon -f ~/railsapp/log/staging.log
    

    这会将staging.log 流式传输到 localhost:8080

    您还可以将tailon 流式传输到nginx 并设置用户访问权限。

    您可能还想查看this answer,以查看使用 Sinatra 和 ruby​​ 的类似内容:) - 如果您不想使用基于 python 的工具。

    【讨论】:

    • 我还要提一下wtee,它是tailon的姐妹项目。如果您只对关注单个文件感兴趣,wtee 可能是更简单的解决方案(免责声明:我是这两个项目的作者)。
    【解决方案3】:

    创建一个unix用户,创建组,将用户添加到组,添加读取文件的权限(740),全部撤销权限并删除组和用户。

    【讨论】:

    • 谢谢...但我不明白您所说的“毕竟撤销权利”是什么意思。
    • 只需删除用户 :) 就够了
    猜你喜欢
    • 2012-03-09
    • 2010-09-22
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 2014-05-03
    相关资源
    最近更新 更多