【问题标题】:Why is my cron command not outputting in log file?为什么我的 cron 命令没有在日志文件中输出?
【发布时间】:2020-05-24 14:09:02
【问题描述】:

在我的树莓派上,我使用 crontab -e(不带 sudo)在我的 crontab 中输入了以下条目:

* * * * * echo "Hello World" &>> /home/pi/test.txt

只是作为一个测试,就是这样。

重启 cron 后 (sudo /etc/init.d/cron restart) 会在 /home/pi/ 中创建 test.txt 文件,但内容仍为空。

为什么?

如果我在 Rasberry Pi 上的 ssh 终端中运行不带星号的程序,它可以正常工作。

我到这一步是因为我的目标是运行 python 脚本并记录任何错误,因为有时它会停止运行,我不知道为什么。因此我需要记录。

感谢您的帮助!

附:我在运行 Raspbian(Debian Buster)的 Orange Pi 上遇到了同样的问题,但是由于某种原因,cron 无法正常工作,所以我使用 rc.local 在启动时运行我的脚本。但是出现了同样的问题:创建了日志文件,但没有添加内容。

【问题讨论】:

  • 你认为&>>在做什么?
  • 将标准错误和标准输出附加到后面指定的文件中。同command >> file.txt 2>&1
  • 虽然我已经改用systemctl解决了我的问题,但我还是很好奇答案...

标签: python-3.x logging cron raspberry-pi debian


【解决方案1】:

Raspbian 似乎使用dash 作为 cron 的默认 shell。 dashsh 兼容,但不与 bash 兼容。这意味着您不能使用&>>。您必须改用>> output.log 2>&1

您是说您的目标是运行 Python 脚本。这也有一个问题。 Python 的缓冲输出,因此如果它太短,默认情况下它不会出现在您的日志文件中。您可以使用python -u 进行无缓冲输出。

我希望我的回答有意义。

【讨论】:

    猜你喜欢
    • 2017-06-30
    • 1970-01-01
    • 1970-01-01
    • 2021-03-12
    • 2021-08-19
    • 2018-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多