我有 2 个命令需要每小时运行一次,所以我将它们放入 /etc/cron.hourly/hrcron 文件中,格式如下
command1; command2
在我看来它应该有效,但是有人知道是什么阻止了它运行吗?
我运行的是 CentOS 6.8。
答案1
文件放置在/etc/cron.hourly
,中cron.daily
并且cron.monthly
需要是可执行文件。如果您将问题中所示的单行文本文件放入该目录中,则该文件根本无法运行,其原因与您无法从命令行将此类文件作为 shell 脚本运行的原因相同。
你想说的是:
#!/bin/sh
command1
command2
您可以用分号连接第二行和第三行,但这里根本没有必要。它是一个完整的 shell 脚本,因此您不需要以这种方式“堆叠”命令。
另外,请务必将脚本标记为可执行,否则它仍然无法运行。
如果根据您的了解,这一切对您来说似乎很奇怪crontab
条目,意识到这些目录中的可执行文件通常由anacron
或者run-parts
,不是由cron
.因此,来自的信息man 5 crontab
并不真正适用于此。
答案2
最简洁的方法是创建两个文件
/etc/cron.hourly/file1
含有command1
/etc/cron.hourly/file2
含有command2
我不建议运行单个 cronjob,command1 && command2
因为如果第一个命令失败,第二个命令将永远不会按照设计执行。
编辑:如果您需要在 command2 之前运行 command1,请使用标准/etc/crontab
文件并按如下方式填写:
0 * * * * root command1
5 * * * * root command2
这将在每小时 00 分钟运行 command1,并在每小时 05 分钟运行 command2。