如何激活这个 crontab?

如何激活这个 crontab?

我有如下设置但它从未执行过。

$ chmod +x /var/tmp/myscript.sh
$ vim /var/tmp/crontab.sh;
* * * * * sleep(10); /var/tmp/myscript.sh
$ crontab /var/tmp/crontab.sh

现在,我注意到它不起作用。我做错了什么?

$ grep CRON /var/log/syslog
Nov 28 15:20:01 sun CRON[1768]: (sun) CMD (sleep(10);/var/tmp/myscript.sh)
Nov 28 15:20:01 sun CRON[1766]: (CRON) error (grandchild #1768 failed with exit status 2)
Nov 28 15:20:01 sun CRON[1766]: (CRON) info (No MTA installed, discarding output)

跟进:

$ vim /var/tmp/crontab.sh
* * * * * sleep 10; /var/tmp/myscript.sh>/dev/null 2>&1
$ tail -f /var/log/syslog | grep CRON
Nov 28 15:50:02 sun CRON[2301]: (sun) CMD (sleep 10; /var/tmp/myscript.sh>/dev/null 2>&1)
Nov 28 15:51:01 sun CRON[2312]: (sun) CMD (sleep 10; /var/tmp/myscript.sh>/dev/null 2>&1)

答案1

实际上,使用 crontab 的最佳方式是使用 crontab 本身:

crontab -l # 列出当前的 crontab 条目

crontab -e # 编辑 cron 表

一旦您完成编辑 crontab(通过“crontab -e”),它就会被激活,并且会在设置为触发时触发所设置的任何操作。

注意,机器必须处于运行状态,crontab 才能工作。如果您想要更灵活的方法,可以查看 anacron(8)。

答案2

sleep不接受括号中的参数(如 C 语言中),因此应该是

* * * * * sleep 10; /var/tmp/myscript.sh

在输入命令之前,务必在系统 shell 中测试该命令cron;)。

相关内容