【问题标题】:Simple crontab schedule of python script not outputting to filepython脚本的简单crontab计划不输出到文件
【发布时间】:2021-03-27 01:47:02
【问题描述】:

我有一个包含以下内容的 python 文件:

from datetime import datetime

print(datetime.today())

如果我使用python3 file.py > out.txt 从终端运行此程序,我将获得带有今天日期的out.txt 文件。

我想用 cron 复制它并安排这个脚本每分钟运行一次。所以 crontab 看起来像:

* * * * * /path/to/python3 /path/to/file.py >> path/to/out.txt

现在这工作了,out.txt 确实被创建了,但文件是空的,并且从不包含任何日期。这是为什么呢?

这里提到的重复并不能解决我的问题。我已经尝试过使用 cron 选项卡每分钟安排一个简单的 echo 命令,并且它起作用了。

不知何故,这是一个 python 问题。 Python 隐藏了输出。或者还有其他一些权限问题。

【问题讨论】:

  • 添加out.txt文件的完整路径。
  • 它已经是怎样了..我的错误没有将它包括在问题中

标签: python shell cron scheduled-tasks


【解决方案1】:

您需要在指定的 crontab 末尾包含 2>&1 以便将打印的值附加到文件中,因此您的 crontab 应如下所示:

* * * * * /path/to/python3 /path/to/file.py >> path/to/out.txt 2>&1

【讨论】:

  • 试过这个。还是没有输出
  • 该文件现在将包含您可以检查的实际错误消息。更多(很多)请参阅副本。
  • 上述副本适用于未运行的 cron 作业。我知道我的正在运行,因为我看到文件是在第一分钟创建的,并且我尝试了其他有效的测试(每分钟回显文件)它的这个特定的 python 案例不起作用。
  • 我的错误实际上确实在 out.txt 中返回了一个错误。 cron 没有权限访问 python 脚本。
猜你喜欢
  • 2020-11-06
  • 1970-01-01
  • 2017-12-08
  • 2015-02-26
  • 1970-01-01
  • 2023-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多