Cron.hourly不会运行


54

好了,我做了我的剧本,我把它丢在/etc/cron.hourly那我chmod 777的文件,但它不会运行(自动)。如果我手动运行它,则可以正常运行。我还需要做其他事情吗?


没有文件和内容的名称,这个答案应该不会收到那么多的赞誉。
用户未知

Answers:


13

为什么不使用crontab(/ etc / crontab)并在小时字段中使用* / 1。我已经使用它每5分钟运行一次脚本,并且效果很好:

# m h dom mon dow user  command
* */1  * * *   user    command

6
cron.daily如果机器并非一直运行,则使用and friends会更好一些,因为anacron会尝试估算正确的时间表,而如果机器不在整夜,则纯cron不会运行它们。对于每小时的工作,这可能并不重要。
poolie 2010年

9
我非常感谢下一个答案,因为它可以解决cron.hourly问题,而不是寻找解决方法。
tishma 2014年

4
这不是问题的答案
josh123a123 '16

@poolie 可以在/etc/crontab上看到cron.dailycron.weeklycron.monthly 与anacron(如果有)一起运行,但每小时一次run-parts --report /etc/cron.hourly
巴勃罗

144

条目cron.hourly由运行部件机制运行(man run-parts有关更多信息)。并且选择run-parts它认为有效的文件名。

例如,给脚本扩展名将使其无效,并导致作业无法运行。[a-zA-Z0-9_-]是有效字符,因此“。” 使其无效。

当添加一个工作/etc/cron.hourly(或者.daily.weekly等),总是事后测试run-parts实际上将通过发出命令运行它:

run-parts --test /etc/cron.hourly

如果通过运行此命令显示您的文件,则表明它可以工作。否则,如果不显示任何内容,则您的文件名无效。

您的脚本名称是什么?


有两个:cerebro_random_response.sh和Cerebro Temperature.sh不好吗?
Switchkick

21
正确,不好:) [a-zA-Z0-9_-]是有效字符,所以'。' 使其无效。这就是我上面所说的“给脚本扩展名将使其无效”的意思
DaithiF 2011年

11
我的天哪,这挽救了巨大的头痛。谢谢!giving your script an extension will make it invalid and result in the job not being run
乔纳森·费舍尔

您也可以--report用来实际运行脚本。
巴勃罗

5

您的问题可能归结于过度打开的权限,该权限允许任何人编辑您的文件。试试吧755

在您的syslog输出中查看cron条目,应确认这一点。


4

DaithiF的答案应该是正确的答案。

另外,我的脚本不在#!/bin/bash第一行。即使可以使用命令行执行脚本,也请run-parts拒绝该脚本,并说“ Exec format error”。

将文件名从更改scriptname.shscriptname并将其添加#!/bin/bash到第一行使我的脚本每小时运行一次。


-1

当你跑步

crontab -l

这个任务在清单上吗?

如果没有,添加它

crontab -e

添加这行

0 * * * * yourScript

如果在此列表中,请尝试将编程语言的路径添加到脚本的顶部

例:

bash: #!/bin/bash

这两件事总是解决了我的问题:)


完成所有操作,脚本就很好了,它就像一个魅力。它也在crontab列表中,但没有每小时执行的任务。无论如何,谢谢:(
Switchkick
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.