运行 每 15 分钟一个 crontab 在 linux redhat 上不工作

Running a crontab every 15 minutes not working on linux redhat

我想 运行 每 15 分钟执行一次 crontab。我试过这个:

0 */15 * * * ./usr/My_PATH/run.sh

但是我得到这个错误:

0 command not found 

语法有问题吗?

非常感谢。

更新:

我更正了脚本并尝试了这个:

*/15 * * * * /My_Path/run.sh

还有这个

0,15,30,45 * * * * /My_Path/run.sh

在这两种情况下我都会出错。

#1 bash: */15: No such file or directory
#2 bash: 0,15,30,45 command not found

是的。

第一个字段是分钟。第二个字段是小时。您将在每 15 个小时的整点零分将其关闭。所以基本上 - 15:00 每天。

你想要:

*/15 * * * * /some_script

此外 - ./ - 这是一个相对路径,这对于 cron 来说可能是个坏主意,因为它没有 chdir 到 运行 的东西。使用绝对路径以避免混淆。如果您绝对需要在特定目录中才能使脚本工作,您可以尝试:

cd /path/to/script && ./this_script

所以很可能您的权限已损坏,或者只是没有找到您正在使用的相对路径。

如果这样:

0 */15 * * * ./usr/My_PATH/run.sh

失败并出现此错误:

0 command not found 

那么您正在尝试 运行 它作为 shell 命令。您需要将其提供给 crontab 命令。有几种方法可以做到这一点。

crontab -l 将列出您的 crontab 的当前内容;它不会修改它。

crontab -e 将在文本编辑器中打开您的 crontab(的副本)并让您对其进行修改。这可能是最简单的更新方法。

crontab filename 读取指定的文件并用它的内容替换 你当前的 crontab。 (如果你已经有一个 crontab,这会悄悄地破坏它。)

我推荐的方法是保留一个包含您的 crontab 的单独文件(例如,crontab.txt)。

首先,如果你已经有一个非空的crontab(检查crontab -l),将它保存到文件:

crontab -l > crontab.txt

对该文件进行任何添加或其他更改,然后使用

crontab crontab.txt

安装更新的 crontab。

你可以保留备份副本(我在源代码控制系统中维护我的副本)这样你就可以在你搞砸的时候恢复。如果你想测试一些东西,你可以快速 crontab -e,然后重新 运行 crontab crontab.txt 恢复到存储的 crontab。


你问题中 crontab 行的语法:

0 */15 * * * ./usr/My_PATH/run.sh

是正确的,但是路径./usr/My_PATH/run.sh看起来可能不正确。 Cron jobs 运行 从你的主目录,所以只有当 usr 目录直接在你的主目录下时路径才有效(在这种情况下 ./ 是不必要的)。最好指定完整路径,可以以 $HOME/.

开头