[英]Why does my crontab not work?
我打算每分钟运行一些bash脚本,我写道:
* * * * * bash ~/Dropbox/temp_scripts/run_all_scripts
在crontab中。
它应该每分钟运行一次,但是没有用。 有谁知道为什么会这样?
将评论转换为答案。
在crontab
条目中将I / O重定向添加到命令行:
>/tmp/run_all_scripts.out 2>/tmp/run_all_scripts.err
一两分钟后,请检查文件的内容。 考虑记录环境以查看是否是问题的一部分。 并考虑使用bash -x
而不是bash
。
如果仍然什么也没得到( /tmp
中的文件未创建),则说明cron
问题; 守护程序未运行,或者您的用户没有使用该守护程序的权限(但crontab
并未告知您),或者您尚未将crontab
提交给程序( crontab -l
说什么?),或者……什么是真的错。
同样要注意, cron
作业的输出通常是(通过电子邮件发送给正在工作的人)(至少在某些情况下,在Mac OS X上是我当前使用的系统,在Solaris是我以前使用的另一个系统)。 您应该查看系统上的电子邮件。
谢谢! 我已经修好了! 它不起作用的原因是我在脚本中使用了“
ls -a .sh
”,并且crontab在正在执行的文件夹中找不到任何*.sh
文件时。 将其修改为“ls -a $HOME/Dropbox/temp_scripts/.sh
”时,一切正常! 此调试技术非常有帮助!
在许多方面,它是最基本的调试技术-确保您看到实际发生的情况。 如果不确定为什么外壳脚本不起作用,请确保可以看到它正在执行以及它以输出方式产生了什么,并且(经常)确保您可以看到它在执行中的结果bash -x
或等效的。 (AFAIK,所有外壳程序都支持-x
来跟踪执行。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.