我在创建一个cron工作时缺少了什么?

时间:2014-03-07 14:04:04

标签: cron crontab

我似乎无法运行cron工作,我无法弄清楚为什么。我是新手,所以我可能会犯一个业余错误。

首先,我创建一个脚本并将其命名为'test.sh',将其放在/ usr / local / bin文件夹中。该脚本包含:

#!/bin/bash
echo "This test works!"

接下来,我在/etc/cron.d文件夹中创建一个名为'randomtest'的文件。该文件包含:

00 09 * * * root /usr/local/bin/test.sh >> /var/log/test.log

我希望cron作业每天早上9点运行,但出于某种原因,它没有。我也没有按预期获得日志文件。我检查了test.sh文件的权限,它当前设置为755,这应该可以。

我有什么问题吗?我错过了一个关键因素吗?我是否需要将“randomtest”文件添加到crontab或其他内容?

2 个答案:

答案 0 :(得分:0)

使用/etc/init.d/crond reload重新加载cron守护程序。

(即使它已经在运行!)

答案 1 :(得分:0)

问题是您正在使用/etc/cron.d目录,而不是使用crontab命令。

除非您确实需要以root运行cron作业,否则只需使用crontab命令将其添加到您自己的crontab中。您可以使用crontab -e对其进行编辑,但最好保留自己的crontab副本(理想情况下在版本控制下)并使用命令的crontab filename版本进行安装。这可确保cron守护程序知道更新,并且将捕获任何语法错误。这也意味着您不需要像root那样运行任何命令;避免root命令,除非它们实际上是必要的总是一个好主意。

请注意,系统crontabs(/etc/crontab/etc/cron.d目录下的那些 - 尽管这些位置是您理想情况下不应该担心的实现细节)具有与用户crontabs不同的语法;每行都有一个额外的字段,用于指定运行commans的帐户。

如果您需要以root用户身份运行命令,则可以更新系统crontab文件(小心!),也可以为root用户设置用户crontab,使用正常的crontab命令,就像使用任何用户帐户一样。