【问题标题】:Python : python-crontab does not executePython:python-crontab 不执行
【发布时间】:2017-05-09 18:38:49
【问题描述】:

我想让 crontab 每分钟执行一次 python 脚本,但似乎 crontab 根本不执行脚本。

这是我制作 crontab 作业的 python 文件。

schedule.py

from crontab import CronTab


def main():
    my_cron = CronTab(user='jelly')
    cmd = '.venv/bin/python Users/jelly/PycharmProjects/test/writeDate.py'
    job = my_cron.new(cmd, comment='test')
    job.minute.every(1)

    my_cron.write()
    print(my_cron.render())


if __name__ == "__main__":
    main()

这是我运行 schdule.py 时的消息

* * * * * .venv/bin/python Users/hyun/PycharmProjects/test/writeDate.py # test

这是应该执行的脚本

import datetime

with open('dateInfo.txt', 'a') as outFile:
    outFile.write('\n' + str(datetime.datetime.now()))

当我进入终端并输入命令行时

ps aux | grep cron

我可以看到这样的消息

root             47903   0.0  0.0  2460724   1696   ??  Ss    6:28PM   0:00.31 /usr/sbin/cron
jelly             71389   0.0  0.0  2432804   1380 s003  R+   12:00PM   0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn cron

此消息有时显示 R+,有时显示 S+,所以我假设 crontab 正在运行,但我找不到任何应该在目录中创建的新 txt 文件。我想知道哪个部分出了问题,我该如何解决。

【问题讨论】:

  • 在运行文件时尝试使用 sudo 可能就像权限问题一样简单。

标签: python flask package crontab


【解决方案1】:

问题在于 python 的路径。 Cron 在有限的环境下运行,所以它不知道 .venv/bin/pythonUsers/jelly/PycharmProjects/test/writeDate.py 在哪里 你必须使用absoulte paths

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-17
    • 1970-01-01
    • 2011-10-14
    • 2020-03-16
    • 2013-04-19
    • 2020-05-30
    • 2017-09-07
    • 2019-05-09
    相关资源
    最近更新 更多