我正试图使用此示例脚本在python:中测试crontab
from crontab import CronTab
tab = CronTab(user='www',fake_tab='True')
cmd = '/var/www/pjr-env/bin/python /var/www/PRJ/job.py'
cron_job = tab.new(cmd)
cron_job.minute().every(5)
#writes content to crontab
tab.write()
print tab.render()
返回时未定义错误"fake_tab"。如果我删除此参数并调用函数
像这样:CronTab(user='ww')。我返回以下错误:
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
tab = CronTab(user='www')
File "C:Python27libsite-packagescrontab.py", line 160, in __init__
self.read(tabfile)
File "C:Python27libsite-packagescrontab.py", line 183, in read
p = sp.Popen(self._read_execute(), stdout=sp.PIPE)
File "C:Python27libsubprocess.py", line 711, in __init__
errread, errwrite)
File "C:Python27libsubprocess.py", line 948, in _execute_child
startupinfo)
WindowsError: [Error 2] The system cannot find the file specified
有人知道吗,我错过了什么?
作为python crontab的作者,我可以报告文档已经更新。考虑到许多人对手册的含义感到困惑,这显然是无效的。
如果你这样做:
mem_cron = CronTab(tab="""
* * * * * command # comment
""")
您应该有一个只有内存的crontab。如果您将文件作为crontab:
file_cron = CronTab(tabfile='filename.tab')
我一直在寻求改进代码和文档,所以请给我发电子邮件。
我认为Crontab
是Unix/Linux的概念。不确定它是否能在窗户下工作。此页面显示"Windows支持仅适用于手动crontab"。但不知道他说的是什么意思。
我发现让crontab
找到工作的最简单方法是:
在settings.py
(我使用django)中,我定义了以下变量:
CRONTAB_EXECUTABLE='C:/Users/myuser/myvirtualenv/Lib/site-packages/django_crontab/crontab.py'
CRONTAB_DJANGO_PROJECT_NAME='myproject'
CRONTAB_DJANGO_MANAGE_PATH='C:/Users/myuser/myvirtualenv/myproject/manage.py'
CRONTAB_PYTHON_EXECUTABLE='C:/Users/myuser/AppData/Local/Programs/Python/Python36-32/pythonw.exe'
注意斜线。它必须向右倾斜,否则会导致语法错误。
通过这种方式,crontab
将找到作业或您试图执行的任何内容。就我而言,我正在尝试:
C:Usersbsimlearning3src>python manage.py crontab add