2013-02-14 269 views
0

当我使用root手动运行脚本时,它工作正常。当我在cron内执行相同的脚本时,它不会运行。我检查了cron实际上正在调用脚本,但脚本没有执行。我将脚本中输出的回声输出到文本文件中,但文本文件没有记录任何内容。请检查这个cron的crontab无法正常工作

*/10 * * * * sh /var/www/sym_monitor/restart.sh > /var/www/migrate/root_restart.txt 
+0

从哪个用户crontab运行脚本? – pomaxa 2013-02-14 11:39:38

+2

添加'2>&1'重定向以获得日志文件中的'stderr'。 – 2013-02-14 11:39:41

+0

@Anton我很抱歉我是一个新手。在那个脚本中添加2>&1的位置。 – user1597811 2013-02-14 11:45:49

回答

3

尝试/bin/sh改变sh

*/10 * * * * /bin/sh /var/www/sym_monitor/restart.sh > /var/www/migrate/root_restart.txt 
5

另一种方法,以避免输入完整的可执行的路径是把外壳全局变量在你crontab的顶部:

SHELL=/bin/sh 
PATH=/bin:/usr/bin:/usr/local/bin 
[email protected] 

*/10 * * * * stuff > log 2>&1 

注意> log 2>&1语法登录日志文件都STDERR & STDOUT

+0

我有同样的问题,当使用curl它不工作,但/ usr/bin/curl 它工作完美 – vuhung3990 2014-08-18 04:01:09