【问题标题】:Crontab - Python Script Runs, sends output to mail, but doesn't write to fileCrontab - Python 脚本运行,将输出发送到邮件,但不写入文件
【发布时间】:2015-02-26 06:28:53
【问题描述】:

我有一个作业,我设置为每 5 分钟运行一次。我确认它确实通过运行运行:

grep CRON /var/log/syslog

它表明它正在运行我需要它来运行'python3 /root/foofolder/foo.py R'的确切命令

Dec 29 23:05:01 fooserver CRON[9306]: (root) CMD (python3 /root/foofolder/foo.py R)

它将输出发送到邮件。我阅读了邮件,输出看起来就像我在终端中运行它一样,完全符合我的需要。该脚本应该写入文件。它没有这样做。在命令行中运行脚本可以很好地写入文件。我已授予 .py 文件 +x 权限并添加了

#!/usr/bin/python

到 .py 脚本的开头。我还有什么遗漏的吗?

【问题讨论】:

  • 您没有指定文件是使用绝对路径还是相对路径。始终使用绝对路径。
  • 如果不显示foo.py 脚本的要点,我们就无法对其进行调试。
  • 不相关:在这种情况下,您不需要 +x 权限和/或 shebang (#!),因为您使用的是 python3。如果设置正确的 shebang #!/usr/bin/python3 和可执行权限,则可以省略 python3

标签: python ubuntu python-3.x cron ubuntu-14.04


【解决方案1】:

尝试在脚本早期使用绝对路径和/或os.chdir 到一个众所周知的位置(在打开文件之前)。

【讨论】:

  • 使用 os.chdir 设置路径就像一个魅力。
  • 很高兴它成功了!请考虑接受这个答案。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-23
  • 2021-03-27
  • 1970-01-01
  • 1970-01-01
  • 2022-01-15
  • 1970-01-01
  • 2011-07-11
相关资源
最近更新 更多