使用 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 脚本的主要内容,如果未能解决你的问题,请参考以下文章