Python Hello world Cron作业不工作
我只花了一个小时来学习工作是如何工作的,这就是我到目前为止所做的。我正在使用Python Hello world Cron作业不工作,python,unix,cron,crontab,Python,Unix,Cron,Crontab,我只花了一个小时来学习工作是如何工作的,这就是我到目前为止所做的。我正在使用crontab-e添加我的cron命令,它是: 0/1****/usr/bin/python/home/my_username/hello.py>/home/my_username/log.txt crontab-l确认我的命令在那里 Hello.py: #!/usr/bin/python # Hello world python program print "Hello World!" 但是我在日志文件中没有看到任何
crontab-e
添加我的cron命令,它是:
0/1****/usr/bin/python/home/my_username/hello.py>/home/my_username/log.txt
crontab-l
确认我的命令在那里
Hello.py:
#!/usr/bin/python
# Hello world python program
print "Hello World!"
但是我在日志文件中没有看到任何东西。有人能解释一下我做错了什么吗?实验表明
0/1
似乎就是问题所在
0/1
应等同于*
。如果将0/1
替换为*
,它应该可以工作
这是我的实验性crontab:
0/1 * * * * echo 0/1 >> cron0.log
* * * * * echo star >> cron1.log
这将创建cron1.log
,但不会创建cron0.log
我将对此进行研究,并试图找出0/1
不起作用的原因,但现在只需使用*
,它应该会起作用
更新:
foo/bar
语法特定于Vixie cron实现,它被大多数Linux系统和MacOS X使用,但并不通用
通常每分钟运行一个命令的方法是在第一个字段中指定*
。要每5分钟运行一次命令,如果您的cron支持,请指定*/5
以下是crontab(5)
手册页上的内容:
阶跃值可与范围一起使用。跟随一系列
with/
指定通过
范围例如,可以在小时字段中使用0-23/2
来指定
每隔一小时执行一次命令(V7标准中的替代方案
是0,2,4,6,8,10,12,14,16,18,20,22
)。之后也允许采取步骤
星号,所以如果你想说“每两个小时”,只需使用*/2
我甚至不知道0/1
是什么意思
更新2:
好的,这是我的发现
假设字段2到5都是*
,将第一个字段(指定分钟数)设置为*
会导致作业每分钟运行一次<代码>*/2每2分钟运行一次,而*/3
每3分钟运行一次。这一切都是意料之中的
将第一个字段设置为0/1
、0/2
或0/3
中的任何一个都会导致作业仅在一小时的顶端运行,也就是说,它只相当于0
这不是我从手册页的描述中所期望的。在以下方面:
某些版本的cron可能不接受“/”前面的值(如果是)
不是范围,例如“0”。另一种选择是替换零
带星号的
似乎并不完全正确,至少对于我正在使用的Vixie cron版本来说是如此;
0/1
是可以接受的,没有任何抱怨,但它并不代表我所期望的,而且它似乎也不是特别有用。0/1
对于您的cron版本,似乎格式错误
我是在以下网站上找到的:
某些版本的cron可能不接受“/”前面的值,如果它不是一个范围,
例如“0”。另一种方法是用星号代替零
因此,基思·汤普森的答案应该是可行的,也应该是:
*/1****
这个条目真的有两行吗,第一行以
结尾?看起来不像,如果你编辑这个问题,你可以看到它不是。这在我的OS X系统上运行良好。你用的是什么操作系统?人们向下投票和投票结束:在我看来,这里有一个真正的问题。请看我的答案。@KeithThompson您的回答证实了这是一个关于ServerFault的问题。我相信m/n语法是Vixie Cron的一个扩展,即基本上仅限Linux。@tripleee:看起来像。看起来是这样。我想真正的问题是定义不清的0/1
,就像你在回答中提到的那样。@tripleee:我在我的系统上看到了类似的症状(Linux Mint 14,Vixie cron)。