CentOS 5.3
我第一次使用 crontab。但是,我似乎无法运行一个简单的脚本文件。
这是我的 crontab 文件:
50 17 * * * /home/dev_user/test_script.sh
它原定于 17:50 发射,但是没有成功。
我的脚本文件test_script.sh
touch myfile.txt
当我执行脚本文件时,它运行正常。
我也重新启动了 crond:
/etc/init.d/crond restart
非常感谢您的建议,
答案1
它是可执行的吗?
在脚本顶部添加以下内容:
#!/bin/sh
-edit-
此外,它可能已经运行,但不在您期望的目录中(取决于您在哪个 crontab 中添加了它)。
将 touch 更改为绝对文件,如 /tmp/myfile.txt
答案2
还可以尝试通过日志文件(/var/log/crond...或类似的文件)进行调试
根据 faker 的回答,如何执行脚本?“sh script”还是“./script”?
答案3
您忘记让用户负责在脚本路径之前运行它。
你的线路应该是:
50 17 * * * dev_user /home/dev_user/test_script.sh
一个小提示,如果你想把它放在 /etc/cron.* 文件夹之一(每小时、每天、每周或每月),请确保删除扩展名 .sh run-parts,负责执行脚本的程序,不要运行包含扩展名的脚本。查看手册页了解更多信息。你可以使用 run-parts 的 --test 参数列出将运行的脚本,如下所示
$ run-parts --test /etc/cron.weekly/
/etc/cron.weekly//apt-xapian-index
/etc/cron.weekly//man-db
答案4
按照其他答案的建议进行操作,并检查 crontab 末尾是否有换行符。(例如,原始 vixie cron 需要此操作)