编写多个命令的脚本

编写多个命令的脚本

我有一个从 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 日志

相关内容