如果我从putty手动运行下面的脚本(作为root),那么服务重启没问题
sh /home/auser/server/reService.sh >> /var/log/reService.log
但是如果同一个脚本被安排为cronjob,也在root下:
00 07 * * * /home/auser/server/reService.sh 2>&1 >> /var/log/reService.log
然后'service myService restart'未成功执行:服务未重新启动,并且与手动日志相比,计划日志中没有命令输出。我还可以告诉你,如果计划的话,重启行之后没有任何内容。
为什么,我在通过crontab时错过了一些特权?如何成功安排重新启动myService?
谢谢你。#!/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
=============================================================================
答案 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