it-swarm.cn

Cron.hourly不会运行

好的,所以我已经制作了我的脚本,我把它放在/etc/cron.hourly然后我chmod 777文件但它不会运行(自动)。如果我手动运行它,它工作正常。我还需要做其他事吗?

54
Switchkick

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

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

cron.hourly中的条目由运行部件机制运行( man run-parts 以获取更多信息)。 run-parts很挑剔它认为有效的文件名。

例如,为脚本提供扩展名会使其无效并导致作业无法运行。 [a-zA-Z0-9_-]是有效字符,所以'。'使它无效。

将作业添加到/etc/cron.hourly(或.daily.weekly等)时,请始终测试run-parts将通过发出命令实际运行它:

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

如果通过运行此命令显示您的文件,则表示它有效。否则,如果没有显示任何文件名无效。

你的剧本名称是什么?

141
DaithiF

您的问题可能取决于过度开放的权限,允许任何人编辑您的文件。请尝试使用755

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

5
Cry Havok

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

另外,我的脚本在第一行没有#!/bin/bash。即使脚本可以使用命令行执行,run-parts拒绝它说“执行格式错误”。

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

4
Ben Lin

当你跑步

crontab -l

这个任务在名单上吗?

如果没有,请添加它

crontab -e

添加此行

0 * * * * yourScript

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

例:

bash: #!/bin/bash

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

0
Wolfy