使用 cron 每 5 分钟后无法运行 python 脚本

Posted

技术标签:

【中文标题】使用 cron 每 5 分钟后无法运行 python 脚本【英文标题】:Not able to run a python script after every 5mins using cron 【发布时间】:2021-03-15 14:28:49 【问题描述】:

我使用 -e 选项编辑了 crontab。然后我去 /etc/cron.d 目录创建一个运行该进程的文件。我再次编辑 /etc/crontab 文件。但我无法让它运行。我从 *** 引用了这个 article 并做了完全相同的事情,但我不知道为什么 cron 不适合我? 这是我的 crontab 的样子 -

# Edit this file to introduce tasks to be run by cron.
# 
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
# 
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').# 
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
# 
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
# 
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
# 
# For more information see the manual pages of crontab(5) and cron(8)
# 
# m h  dom mon dow   command
*/5 * * * * anikde /home/anikde/Documents/pythonProjects/python_scripts/* 
* * * * * anikde python /home/anikde/Documents/pythonProjects/python_scripts/test/write.py

我已将第一个作业设置为每 5 分钟运行一次,并将第二个作业设置为每一分钟运行一次。但是没有一个作业是自动运行的。当我命令作业将第一个脚本作为 bash 脚本运行,将第二个文件作为 python 脚本运行时,它们实际上会运行。

【问题讨论】:

您不需要在 /etc/crontab 中手动创建文件。只需使用crontab -e 编辑 cron,相关的 cron 文件就会更新。 我这样做了,但脚本没有自动运行。我其实在考虑重新安装cron,会有帮助吗? 1.检查您的 crontab 计划(crontab 条目中的前 5 列)。是正确的。您可以在crontab guru 尝试不同的值。只需用其他适当的值替换开头即可。 2.检查您的命令是否在没有 cron 的情况下运行。可以手动运行吗? 3.编辑您的帖子并包含您的确切 crontab。或将其包含在评论中。很难猜出哪里出了问题。 【参考方案1】:

我假设您正在尝试每 5 分钟自动运行以下脚本:

/home/anikde/Documents/pythonProjects/python_scripts/test/write.py

首先,使用which python 命令确定 Python 可执行文件的位置。在下面的示例中,我假设返回的路径为 /usr/bin/python

    如果编辑您自己的 crontab (crontab -e),请尝试以下命令:
*/5 * * * * /usr/bin/python /home/anikde/Documents/pythonProjects/python_scripts/test/write.py

如果未指定用户,作业将以拥有 crontab 文件的用户身份运行,并使用其环境。但是你也可以尝试添加用户名

*/5 * * * * anikde /usr/bin/python /home/anikde/Documents/pythonProjects/python_scripts/test/write.py

    如果编辑根 crontab (sudo crontab -e)
*/5 * * * * anikde /usr/bin/python /home/anikde/Documents/pythonProjects/python_scripts/test/write.py

【讨论】:

非常感谢 KazikM。这就是为什么喜欢 linux 社区和开源产品的原因。

以上是关于使用 cron 每 5 分钟后无法运行 python 脚本的主要内容,如果未能解决你的问题,请参考以下文章

如何从 0 分钟以外的时间开始每 5 分钟运行一次 cron 作业?

为什么这个cron作业每分钟运行一次?

CRON 命令每 5 分钟运行一次 URL 地址

无法使用cron每分钟执行一次python 3脚本

每 5 分钟运行一次 Cron 作业,持续 10 秒

java Quartz Scheduler cron 表达式每隔 30 分钟后一刻钟