Python:python-crontab不执行

时间:2017-05-07 03:03:08

标签: python flask package crontab

我想让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文件。我想知道哪个部分出了问题,我该怎么办呢。

1 个答案:

答案 0 :(得分:0)

问题在于python的路径。 Cron在有限的环境下运行,因此它不知道 .venv / bin / python Users / jelly / PycharmProjects / test / writeDate.py 的位置 您必须使用absoulte paths