[英]Cronjob not running on Python and Mac
我正在尝试测试一个简单的 cronjob,当我检查 cronjob 是否已执行时,它显示它已执行但没有创建文件作为任务的一部分。
我有以下脚本 testjob.py 需要执行:
#!/usr/bin/env python3
import datetime
with open('testcron.txt', 'a') as outfile:
outfile.write('\n' + str(datetime.datetime.now() + 'myname'))
这是cronjob:
#!/usr/bin/env python3
from crontab import CronTab
my_cron = CronTab(user='myname')
job = my_cron.new(command = 'python /Users/myname/Desktop/customers/cronjob/testjob.py')
#schedule job to run every 2 minutes
job.minute.every(1)
my_cron.write()
我该如何解决这个问题?
通过 crontab -e 运行我的 crontab 链接到图像: https : //i.stack.imgur.com/pj9Pt.png
您可以通过 crontab -e 设置一个 cron 作业,这比创建一个 python 脚本来创建一个 cron 作业要好得多。 但无论如何。
您可以首先通过实际运行 python 脚本并查看是否有任何错误,以及是否创建了文件来进行故障排除。
确保该 cron 作业的用户具有执行脚本的正确权限。
尝试直接从终端执行命令:python /Users/myname/Desktop/customers/cronjob/testjob.py。
从您的回复来看,它不起作用的原因是您的脚本无法打开文本文件。
当您通过以下方式执行脚本时:python /Users/myname/Desktop/customers/cronjob/testjob.py,文本文件“testcron.txt”的位置完全取决于您从何处执行脚本。
所以基本上,除非“testcron.txt”位于您执行脚本的相同路径/目录中,否则它不会工作。
您可以通过更改 cron 选项卡首先导航到文本文件所在的位置,然后运行 python 脚本来解决此问题。
例如,如果您的“testcron.txt”文件位于/Users/myname/Desktop/customers/cronjob/
则将您的 cron 作业写为:
cd /Users/myname/Desktop/customers/cronjob && python ./testjob.py
您可以不使用 python 命令运行 cron 作业,而是像 shell 脚本一样运行它。
测试作业.py:
#!/usr/bin/env python3
import datetime
with open('testcron.txt', 'a') as outfile:
outfile.write('\n' + str(datetime.datetime.now() + 'myname'))
定时任务:
#!/usr/bin/env python3
from crontab import CronTab
my_cron = CronTab(user='myname')
job = my_cron.new(command = '/Users/myname/Desktop/customers/cronjob/testjob.py')
#schedule job to run every 2 minutes
job.minute.every(1)
my_cron.write()
确保首先运行chmod a+x /Users/myname/Desktop/customers/cronjob/testjob.py
以使 python 可执行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.