Cron 作业正在将错误写入错误日志,但无法将输出写入输出日志文件

Cron job is writing the error to error log but fails to write outputs to output log file

我有 2 个 python 代码,我使用 cron 安排了这些代码。我的代码实际上每天从 10:30am 运行到 4:20pm。从 10:30am 到 11:00am 我的代码每分钟输出 2-3 行,之后它们开始每分钟输出 30-40 行。我已经安排了我的代码。

30 10  * * 1-5 cd /home/alpha/IBpy && python LongData.py >> /home/alpha/logs/Longdata.op 2>> /home/alpha/logs/Longdata.er
31 10  * * 1-5 cd /home/alpha/IBpy && python ShortData.py >> /home/alpha/logs/Shortdata.op 2>> /home/alpha/logs/Shortdata.er

现在的问题是,我的程序运行良好,它们正在做它们应该做的所有事情。如果发生任何错误,他们会立即将错误写入错误日志文件,但他们甚至不会将单行写入输出文件。我检查了这里和 Whosebug 中几乎所有可能对我有帮助的帖子,但不幸的是 none 帮助了我。但是,如果我在 11:00am(当程序开始输出 30-40 行)而不是 10:30 时启动相同的程序,则一切正常。我真的不知道我做错了什么。我不应该在 11 点开始我的程序。任何帮助将不胜感激。

似乎我遇到了这个问题,因为到 stdout 的数据被缓冲了。根据 this post 我刚刚将我的 cron 作业更改为

31 10  * * 1-5 cd /home/alpha/IBpy && stdbuf -i0 -o0 -e0 python ShortData.py >> /home/alpha/logs/Shortdata.op 2>> /home/alpha/logs/Shortdata.er

现在一切正常。