我在创建cron作业时遗漏了哪一步?

我在创建cron作业时遗漏了哪一步?,cron,crontab,Cron,Crontab,我似乎无法运行cron作业,也不知道为什么。我是新手,所以我可能犯了一个业余错误 首先,我创建一个脚本并将其命名为“test.sh”,将其放入/usr/local/bin文件夹中。该脚本包含: #!/bin/bash echo "This test works!" 00 09 * * * root /usr/local/bin/test.sh >> /var/log/test.log 接下来,我在/etc/cron.d文件夹中创建一个名为“randomtest”的文件。该文件包含

我似乎无法运行cron作业,也不知道为什么。我是新手,所以我可能犯了一个业余错误

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

#!/bin/bash
echo "This test works!"
00 09 * * * root /usr/local/bin/test.sh >> /var/log/test.log
接下来,我在/etc/cron.d文件夹中创建一个名为“randomtest”的文件。该文件包含:

#!/bin/bash
echo "This test works!"
00 09 * * * root /usr/local/bin/test.sh >> /var/log/test.log
我希望cron作业每天早上9:00运行,但由于某些原因,它没有运行。我也没有得到预期的日志文件。我检查了test.sh文件的权限,它当前设置为755,应该可以工作


我做错什么了吗?我是否遗漏了一个关键因素?是否需要将我的“随机测试”文件添加到crontab或其他内容?

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


即使它已经在运行了

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

除非您确实需要cron作业作为root用户运行,否则只需使用crontab命令将其添加到您自己的crontab中即可。您可以使用crontab-e来编辑它,但是最好将您自己的crontab副本理想地保存在版本控制下,并使用命令的crontab filename版本来安装它。这将确保cron守护进程将知道更新,并且将捕获任何语法错误。这也意味着您不需要以root用户身份运行任何命令;避免使用root命令,除非它们确实是必需的,这始终是一个好主意

请注意,系统crontab位于/etc/crontab和/etc/cron.d目录下,尽管这些位置是实现细节,理想情况下您不必担心它们与用户crontab的语法不同;每行都有一个额外的字段,指定要在其中运行COMMAN的帐户


如果需要以root用户身份运行命令,则可以仔细更新系统crontab文件!,或者,您可以使用普通的crontab命令为root用户设置用户crontab,就像您为任何用户帐户设置crontab一样。

您在Ubuntu上吗?你可以查一下。检查cron守护进程是否使用ps-ef | grep cron运行。我正在运行CentOS 4.4,linux内核版本2.6.18-308.el5。Cron守护程序确实正在运行。如果使用crontab-e和普通crontab呢?我使用了crontab-e,它打开了一个空文件,我在其中插入了00 09***root/usr/local/bin/test.sh>>/var/log/test.log。没有发生任何事情:。如果删除根部分并添加二进制文件->00 09***/bin/bash/usr/local/bin/test.sh>>/var/log/test.log会怎么样