无法保存特定环境中特定命令的输出(cron)

无法保存特定环境中特定命令的输出(cron)

我的 crontab 没有生成日志特别的我用来监控网络的命令;其​​他命令运行良好。

* * * * *    /usr/bin/COMMAND opt1 opt2 >> /home/pi/LOG.log 2>&1

日志文件已创建,但命令的输出未记录。在终端中运行命令和日志记录时,命令和日志记录工作正常。我尝试复制 cron 环境并手动运行命令:

我补充道crontab -e

* * * * * env > ~/cronenv

然后我运行:

env - `cat ~/cronenv` /bin/sh
/usr/bin/COMMAND opt1 opt2

COMMAND 输出与预期一致,但是当我尝试记录输出时,我得到的是空日志:

/usr/bin/COMMAND opt1 opt2 > /home/pi/LOG.log 2>&1
/usr/bin/COMMAND opt1 opt2 | tee /home/pi/LOG.log 2>&1

切换我的 shellcrontab -eSHELL=/bin/bash没有任何效果。

不确定这是否相关,但我正在努力的命令需要几秒钟才能运行,当我在终端中运行它时,它会以彩色输出,格式有些花哨,Unicode 字符等,但它仍然可以正常记录。当我从cronenv我创建的运行它时,它不会以彩色显示,但显示方式与我从终端将其保存到日志时的方式大致相同。

编辑:

这在我创建的环境中有效~/cronenv,但是通过 cron 运行时日志已创建但是为空(与以前一样):

/usr/bin/unbuffer /usr/bin/COMMAND opt1 opt2 > /home/pi/LOG.log 2>&1

相关内容