gpt4 book ai didi

Python 脚本未在 cron 中运行

转载 作者:行者123 更新时间:2023-12-05 08:43:38 26 4
gpt4 key购买 nike

我正在尝试从 cron 运行 Python 脚本。我正在使用 crontab 以用户身份而不是 root 身份运行命令。我的 Python 脚本在顶部有 shebang #!/usr/bin/env python 我做了 chmod +x 使脚本可执行。

该脚本在从 shell 运行时确实有效,但在使用 crontab 时无效。我确实检查了 /var/log/cron 文件并看到脚本在运行,但是 stdoutstderr 绝对没有任何内容打印在任何地方。

最后,我制作了一个打印日期和字符串的小脚本,并在有效的每一分钟调用它,但另一个脚本没有。我不确定为什么会得到这些可变结果...

这是我在 crontab 中的输入

SHELL=/bin/bash



#min #hour day-of-month month day-of-week command
#-------------------------------------------------------------------------
*/5 * * * * /path/to/script/script.py

这是我的脚本的源代码,它不会从 crontab 运行,但会从它所在的 shell 运行,就像这样调用 ./script.py。在我对它使用 chmod +x 命令后,该脚本是可执行的,顺便说一下......:

#! /usr/bin/env python

#create a file and write to it
import time

def create_and_write():
with open("py-write-out.out", "a+") as w:
w.write("writing to file. hello from python. :D\n")
w.write("the time is: " + str(time.asctime()) + "\n")
w.write("--------------------------------\n")


def main():
create_and_write()

if __name__ == "__main__":
main()

编辑我弄清楚出了什么问题。我需要将绝对文件路径放在脚本中,否则它会写入我没有计划的某个目录。

最佳答案

好吧,我想这个话题仍然会帮助谷歌员工。
我使用一种解决方法来运行带有 cron 作业的 python 脚本。事实上,python 脚本需要用 cron 作业小心处理。
所以我让 bash 脚本处理所有这些。
我创建了一个 bash 脚本,其中包含运行 python 脚本的命令。然后我安排一个 cron 作业来运行 bash 脚本。您甚至可以使用重定向器来记录执行 python 脚本的 bash 命令的输出。
例如

@reboot /home/user/auto_delete.sh

auto_delete.sh 可能包含以下行:-

#!/bin/sh
echo $(date) >> bash_cron_log.txt
/usr/bin/python /home/user/auto_delete.py >> bash_cron_log.txt

所以我不需要担心 Cron Jobs 在 python 脚本上崩溃。

关于Python 脚本未在 cron 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26049459/

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