每15分钟运行一次crontab,无法使用linux redhat

时间:2015-05-20 14:13:02

标签: linux shell unix crontab 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

2 个答案:

答案 0 :(得分:3)

如果:

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作业从您的主目录运行,因此仅当usr目录直接位于您的主目录下时,该路径才有效(在这种情况下,./是不必要的)。指定完整路径可能更好,可以从$HOME/开始。

答案 1 :(得分:2)

是。

第一个字段是分钟。第二个字段是小时。您每隔15小时在零小时后将其设置为关闭。所以基本上 - 每天15:00。

你想:

*/15 * * * * /some_script

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

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

因此,很可能您的权限被破坏或者找不到您正在使用的相对路径。