好的,所以我已经制作了我的脚本,我把它放在/etc/cron.hourly
然后我chmod 777
文件但它不会运行(自动)。如果我手动运行它,它工作正常。我还需要做其他事吗?
为什么不使用crontab(/ etc/crontab)并在小时字段中使用*/1。我用它来每5分钟运行一次脚本,效果很好:
# m h dom mon dow user command
* */1 * * * user command
cron.hourly
中的条目由运行部件机制运行( man run-parts
以获取更多信息)。 run-parts
很挑剔它认为有效的文件名。
例如,为脚本提供扩展名会使其无效并导致作业无法运行。 [a-zA-Z0-9_-]
是有效字符,所以'。'使它无效。
将作业添加到/etc/cron.hourly
(或.daily
,.weekly
等)时,请始终测试run-parts
将通过发出命令实际运行它:
run-parts --test /etc/cron.hourly
如果通过运行此命令显示您的文件,则表示它有效。否则,如果没有显示任何文件名无效。
你的剧本名称是什么?
您的问题可能取决于过度开放的权限,允许任何人编辑您的文件。请尝试使用755
。
查看syslog输出中的cron条目应该确认这一点。
DaithiF的答案应该是正确的答案。
另外,我的脚本在第一行没有#!/bin/bash
。即使脚本可以使用命令行执行,run-parts
拒绝它说“执行格式错误”。
将文件名从scriptname.sh
更改为scriptname
并将#!/bin/bash
添加到第一行使我的脚本每小时运行一次。
当你跑步
crontab -l
这个任务在名单上吗?
如果没有,请添加它
crontab -e
添加此行
0 * * * * yourScript
如果它在此列表中,请尝试将编程语言的路径添加到脚本的顶部
例:
bash: #!/bin/bash
这两件事总能解决我的问题:)