想知道是否有人知道为什么会出现以下问题,或者有任何提示在哪里查看...我可以在ssh中手动运行shell脚本,但如果我将其设置为在crontab中运行,我会遇到以下问题 .
服务器是:FreeBSD 8,我可以访问所有root权限
我有一个shell脚本(Bourne),它使用crontab在“root”权限下运行,并带有以下命令:
* * * * * /data/backups/scripts/server_log_check.sh > /data/backups/logs/cron_logs/server_log_check.sh_cron.log
“server_log_check.sh”脚本使用此命令检查“报表服务器”是否正在运行:
if ps -xauww | grep -v grep | grep java | grep www > /dev/null
then
#“reports are running, no need to try to restart it”
Else
/usr/local/etc/rc.d/tomcat55 start #start report server because it is not running
Fi
问题发生在这一行:“ /usr/local/etc/rc.d/tomcat55 start
”,当使用crontab运行脚本时,如果我通过ssh手动运行脚本,这行代码运行没有问题,但脚本中的所有其余代码执行正常,不是这一行 . 或者,如果我将此行 /usr/local/etc/rc.d/tomcat55 start
粘贴到ssh命令提示符中,它也会运行得很好 .
我将“server_log_check.sh”所有权更改为“root”,但这没有什么区别,脚本“tomcat55”的所有权是“www” . crontab条目是在“Root”配置文件下创建的,因此,我认为运行由出租方权限(如“www”)拥有的文件没有问题 .
你有什么想法为什么cron这样做?
提前致谢
1 回答
尝试添加以下内容,将错误添加到日志文件中:
也改变这个:
至:
这应该在
/home/root
中创建一个nohup.out
.