我有一个从 Cron 运行的 PHP 脚本。我想将其输出保存到文件,但也想将 shell 输出保存到不同的文件。理想情况下,我希望将其放在一行中。因此,我尝试了以下方法:
script "/folder/log/file.errors."`date +"%Y-%m-%d.%H-%M-%S"`".txt" && /usr/bin/php /folder/file.php > "/folder/log/file.php."`date +"%Y-%m-%d.%H-%M-%S"`".txt"
但它只运行第一个命令(之前&&
)。同样,如果我使用;
而不是&&
.
当我将其作为两个单独的命令运行时,它工作得很好:
root:~# script "/folder/log/file.errors."`date +"%Y-%m-%d.%H-%M-%S"`".txt"
root:~# /usr/bin/php /folder/file.php > "/folder/log/file.php."`date +"%Y-%m-%d.%H-%M-%S"`".txt"
如何将这两个命令连接到一个命令/行中?
另外,当通过 Cron 运行时,我是否需要exit
在上述代码之后运行命令才能脚本正确保存到文件?
答案1
根据 terdon 的要求,我将此评论作为答案发布,以便该问题可以标记为“已回答”
不要依赖
script
日志记录,特别是如果这最终将成为一项 cron 作业,请考虑将输出和错误消息发送到 php 代码中的一个或多个指定文件。当您在 cron 中运行它时,它将创建一个会话日志,除非您将其转移到类似>/dev/null 2>&1
指令的内容。因此,作为调试工具,您可以检查 cron 日志