【发布时间】:2010-12-19 09:08:51
【问题描述】:
我正在将一个网站移动到 Hostmonster 并询问服务器日志的位置,以便我可以自动扫描它以查找 CGI 错误。有人告诉我,“很抱歉,我们没有 cgi 错误转到您有权访问的任何文件。”
出于组织原因,我坚持使用 Hostmonster 和这个糟糕的政策,所以作为一种解决方法,我想也许我会修改 CGI 脚本以将 STDERR 重定向到自定义日志文件。
我有很多脚本 (269),所以我需要在 Python 和 Perl 中使用一种简单的方法将 STDERR 重定向到自定义日志文件。
如果有多个脚本同时失败,则可以显式或隐式地解决文件锁定问题,因为理论上共享的 CGI 错误日志文件可以由多个脚本同时写入。
(我想使用共享错误日志,这样我就可以每晚通过电子邮件将其内容发送给自己,然后将其存档或删除。)
我知道我可能必须修改每个文件 (grrr),这就是为什么我正在寻找一些优雅的东西,而这些东西只有几行代码。谢谢。
【问题讨论】:
-
另一个问题是他们可能也不允许你创建文件。
-
我很确定您可以在您的家庭或网络 (public_html) 树中创建文件。我想到的另一个方面是,如果我有 269 个脚本并且要附加到自己的日志文件中,也许我需要担心自定义日志文件上的文件锁定
-
这是我的另一个疯狂想法,它要么很酷,要么很疯狂。这些脚本都以 #!/usr/bin/python 或 perl 开头。如果我创建了自己的包装器,例如 /home/user/bin/mypython 或 myperl,会怎样。然后可以重定向stderr并将脚本的其余部分传递给“真正的”perl或python。如果这实际上是一个好主意(不是一个可怕的主意),我只是不知道“将 [cgi] 脚本的其余部分传递给真正的 perl/python”的机制。
-
(我突然想到这可能是不可移植的,因为某些主机,甚至可能是 Hostmonster,可能不喜欢 CGI 脚本调用类似 /home/user/bin/myperl 之类的奇怪东西 - 他们可能有安全问题,即使它们本身确实不应该)
-
关于许多错误日志/文件锁定的问题:只需在发送电子邮件之前附加或压缩文件 -> 问题解决了吗?如果您想按时间顺序记录日志事件,只需编写一个简单的脚本来遍历日志。
标签: python perl cgi stderr hostmonster