重启服务crontab问题

时间:2011-05-25 12:48:07

标签: linux bash cron

如果我从putty手动运行下面的脚本(作为root),那么服务重启没问题

手动命令

sh /home/auser/server/reService.sh >> /var/log/reService.log

但是如果同一个脚本被安排为cronjob,也在root下:

crontab命令

00 07 * * * /home/auser/server/reService.sh 2>&1 >> /var/log/reService.log

然后'service myService restart'未成功执行:服务未重新启动,并且与手动日志相比,计划日志中没有命令输出。我还可以告诉你,如果计划的话,重启行之后没有任何内容。

为什么,我在通过crontab时错过了一些特权?如何成功安排重新启动myService?

谢谢你。

reService.sh

#!/bin/bash
clear
echo "============================================================================="
echo "Daily restarting of my service"
date
echo "============================================================================="
service myService restart
exit 0

手动日志

 [H [J=============================================================================
Daily restarting of my service
Thu May 19 04:51:12 EDT 2011
=============================================================================
Stopping myService   ..done
Starting myService   ..done

预定日志

=============================================================================
Daily restarting of my service
Thu May 19 07:00:02 EDT 2011
============================================================================= 

1 个答案:

答案 0 :(得分:3)

在您的手动示例中使用sh表示该脚本没有执行权限。尝试在crontab中以相同的方式设置或调用sh(我更喜欢前者)。

编辑:好的,这不是权限。接下来要看的是$ PATH;将其回显到日志文件并进行比较。

EDIT2 :如果问题是PATH,那么只需在crontab中设置:

PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/local/bin/:/usr/local/sbin:/usr/bin/X11:/usr/‌​openwin/bin:/usr/java/bin:/root/bin 

00 07 * * * /home/auser/server/reService.sh 2>&1 >> /var/log/reService.log