【问题标题】:Cronjob linux server loggingCronjob linux 服务器日志记录
【发布时间】:2014-07-21 19:03:30
【问题描述】:

我的 linux 服务器上运行了一些 cronjobs。这些 cronjobs 只是执行一些 PHP 脚本。我想做的是记录这些脚本可能给出的任何输出。

我想使用命令给出的输出:

wget -O /logs/logfile /pathofthefolder/script.php

问题是这个命令覆盖了之前的日志文件,因此日志文件只包含最后一次执行的输出,这对于日志来说有点用处。

我尝试添加一个 -a 来追加而不是覆盖,但这不起作用。

我也尝试过只使用这样的 -a:

wget -a /logs/logfile http://example.com/script.php

但这也没用,我在日志文件中得到了下载的信息:

-2014-05-27 21:41:01--  http://example.com/script.php
Resolving example.com (example.com)... [ip address of my site]
Connecting to example.com (example.com)|[ip address of my site]|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: `script.php.4'
     0K

所以HTTP请求的信息被存储在日志文件中,并且每个请求的输出被保存在一个单独的文件中,并且数量越来越多,script.php.1,script.php.2等等。这不是我想要的,我宁愿将它们全部放在一个文件中,我不需要 HTTP 信息。

更新: 所以我知道通过 php 或 lynx 命令会更容易,但是这些命令没有安装在服务器上。我对 wget 有点坚持。

【问题讨论】:

    标签: php linux apache logging cron


    【解决方案1】:

    您可能想尝试重写您的 cronjobs 以使用 php 解释器而不是 wget:

    php -f /path/to/file
    

    这将执行一个本地 (!) php 文件并将输出写入命令行。

    您可以轻松地将此输出重定向到 apppend 到文件:

    php -f /path/to/file >> /logs/logfile
    

    (要覆盖而不是追加,请使用单个>)

    如果您还需要错误消息,则需要重定向 stdout 和 stderr:

    php -f /path/to/file >> /logs/logfile 2>&1
    

    如果您没有/无法安装 php 可执行文件,您可以使用(如果已安装)curl 获得与 wget 类似的结果(请参阅其他答案):

    curl http://localhost/your/file.php >> /logs/logfile
    

    【讨论】:

    • 是的,我也喜欢这种方式。但问题是服务器上没有安装PHP命令。因此,我得到以下日志。 “-:php:找不到命令”。而且由于不是我自己的服务器,是共享主机,我无法安装任何新功能。
    • 在这种情况下,是的,如果适合您,请使用 user1279647 的解决方案。如果你安装了 curl,你可以试试我更新的答案,但它不会像 wget 一样给你 stderr。 (不过,格式可能会更好)。
    • Jup 这也有同样的结果。谢谢。
    【解决方案2】:

    你可以用这个:

    wget -qO- "http://example.com/script.php?parameter=value&extraparam=othervalue" >> /logs/logfile 
    

    【讨论】:

    • 这也有同样的问题。 HTTP REQUEST 数据被记录下来,脚本的实际输出最终在每次执行时都在一个单独的文件中。
    • 好的,我试过了。这给出了与我在帖子中提到的两个相同的结果。 HTTP 请求数据在日志文件中结束,而最后一次执行的输出在根目录中的 script.php 中结束。
    • 是的!这完美!必须对格式进行一些处理,但它可以满足我的要求。非常感谢!这个想法是,脚本不输出任何东西,但如果它抛出 PHP 错误,输出将被记录,让我更容易找出问题所在。
    • 当您尝试将参数添加到 php 文件时,这是否可能不再起作用?像 script.php?parameter=value&extraparam=othervalue
    • 你应该引用网址
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-07
    • 2021-01-03
    • 1970-01-01
    相关资源
    最近更新 更多