gpt4 book ai didi

python - 我还能如何排除此 cron 作业的故障?

转载 作者:太空宇宙 更新时间:2023-11-03 13:15:39 24 4
gpt4 key购买 nike

我一直在努力(和搜索)让这个 cron 作业/python 脚本运行一段时间。但是,它显然不起作用。我不确定还有什么方法可以解决原因,我已经尝试了在其他 SO 问题中找到的几件事。

脚本路径:/home/phil/cron_jobs/octoStatus.py

我希望 cron 每分钟运行一次。

crontab.txt 文件:

*/1 * * * * python /home/phil/cron_jobs/octoStatus/octoStatus.py &> octolog.txt

octolog.txt 用于捕获 STDOUT 和 STDERR 信息。 “sudo tail/var/log/cron”的输出

Jul  3 10:20:00 bsd /usr/sbin/cron[83876]: (root) CMD (/usr/libexec/atrun)
Jul 3 10:20:00 bsd /usr/sbin/cron[83877]: (phil) CMD (python /home/phil/cron_jobs/octoStatus/octoStatus.py &> octolog.txt)
Jul 3 10:21:00 bsd /usr/sbin/cron[83903]: (phil) CMD (python /home/phil/cron_jobs/octoStatus/octoStatus.py &> octolog.txt)
Jul 3 10:22:00 bsd /usr/sbin/cron[83934]: (phil) CMD (python /home/phil/cron_jobs/octoStatus/octoStatus.py &> octolog.txt)

它似乎每分钟都在按要求运行。但是,脚本的预期结果没有出现。 octolog.txt 也没有被创建。当我手动运行 cron-log 中显示的确切语句时,一切都按预期正常工作,并且创建了 octolog.txt 文件。

我在 FreeBSD 上运行它,我去查看/var/log/syslog,但它不存在。我是 FreeBSD 的新手,但我不确定在这种情况下这意味着什么,但我想我会提到它。

我不确定还有什么其他信息会有帮助,因为我被困住了。谢谢。菲尔

最佳答案

首先,要每分钟运行一次脚本,您不需要 */1。默认情况下,Cron 每分钟运行一次,因此:

* * * * * /path/to/command

接下来,您的重定向可能会被破坏。 bash 手册页在“重定向标准输出和标准错误”下列出了 &> 格式,因此我假设这就是您想要做的。但是 FreeBSD 的 /bin/sh 不是 bash。所以:

* * * * * /path/to/command >/path/to/output.txt 2>&1

这会将 stdout 发送到您的文件,并将 stderr 复制到 stdout。

这将我们带到:

* * * * * python /home/phil/cron_jobs/octoStatus/octoStatus.py > octolog.txt 2>&1

另请注意,根据 man 5 crontab,您可以在 crontab 文件中设置一个 MAILTO 变量,它将作业的输出/错误定向到一个电子邮件地址。

请注意,cron 使用的 PATH 可能不包括安装 python 的 /usr/local/bin。如果您的 octoStatus.py 脚本包含“shebang”,那么您可以直接执行它。否则,您要么必须提供您的 python 二进制文件的完整路径,要么将 PATH 变量添加到您的 crontab(类似于我上面提到的 MAILTO)。在所有情况下,您都可以通过阅读 man 5 crontab 获得有关格式化的说明。

关于python - 我还能如何排除此 cron 作业的故障?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31211811/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com