在我的树莓派上,我使用 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 在启动时运行我的脚本。但同样的问题出现了:创建了日志文件但没有添加内容。
Raspbian 似乎正在使用
dash
作为 cron 的默认 shell。 dash
符合 sh
标准,不符合 bash
标准。这意味着您不能使用 &>>
。您必须使用 >> output.log 2>&1
来代替。
您是说您的目标是运行 Python 脚本。这也有一个问题。 Python 的缓冲输出,因此如果它太短,默认情况下它不会出现在日志文件中。您可以使用
python -u
进行无缓冲输出。
我希望我的回答有意义。
* * * * * python /home/pi/code.py 2>&1 /home/pi/code.log
您好,crontab 中上述代码片段的最后一部分会将每个日志写入文件 /home/pi/code.log
希望有帮助