Python中的Crontab会创建cron作业,但不会运行脚本

时间:2019-07-12 17:44:02

标签: python cron

不确定是什么错误,无论是代码,目录还是其他。请帮忙!

from crontab import CronTab

my_cron = CronTab(user='bgoldberg')
job = my_cron.new(command='python /Users/bgoldberg/PythonScripts/FunStuff/writeDate.py')
job.minute.every(1)
my_cron.write()

这是writeDate.py脚本:

import datetime

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

writeDate.py脚本仅将当前时间戳写入txt文件,并且在单独运行时可以正常工作。当我运行python scheduleCron.py时,它没有错误运行,但是似乎没有运行writeDate.py脚本,因为没有创建txt文件。当我输入crontab -l时,它正确显示了创建的作业:***** python /Users/bgoldberg/PythonScripts/FunStuff/writeDate.py

不知道我在做什么错...

1 个答案:

答案 0 :(得分:2)

这是cron“ gotcha”。 Cron使用命令

python /Users/bgoldberg/PythonScripts/FunStuff/writeDate.py

您希望将其写入当前工作目录的

,但是cron默认会写入/var/log/syslog或该版本的某些变体。它正在尝试写入您无权访问的地方(但不会死),因此您需要指定输出文件的绝对路径。

更改writeDate.py中的行以写入绝对路径:

with open('/Users/bgoldberg/dateinfo.txt', 'a') as outFile:

将解决您的问题。