2013-02-13 95 views
0

我有一个简单的脚本,停止和启动服务(甲骨文海波龙)cron作业无法重新启动服务

#!bin/ksh 

/path/to/dir/stop.sh 

sleep 1200 

/path/to/dir/start.sh 

我已经安排它每天晚上都和它不运行,但没有与问题数据库连接。但是当我手动运行stop.shstart.sh时,不存在这样的问题。显然这项工作并没有完全运行。

下面是crontab -l

00 02 * * * /export/home/oracle/scheduled_restart.sh 

输出可能有人请告知问题?谢谢。

+0

你可以发布cronjob行来检查吗? – fedorqui 2013-02-13 09:12:35

+0

@fedorqui我在问题 – Jay 2013-02-13 10:41:24

回答

1

在执行完全相同的代码期间,cron作业与命令行不同的通常原因是环境,特别是诸如ORACLE_SID,TWO_TASK,LD_LIBRARY_PATH等变量。

假设oracle用户拥有crontab: 当通过crond运行作业时,它执行的操作与su oracle相当,而不是su - oracle。尝试做一些事情来确保命令能够在登录时收集oracle用户通常会发送的所有内容。

要看看是怎么回事:

/export/home/oracle/scheduled_restart.sh && set > /tmp/my_variables.txt 

你不需要/bin/sh如果/export/home/oracle/scheduled_restart.sh文件是可执行文件。 它应该在第1行上有一个shebang。例如:#!/bin/ksh用于korn shell或任何你使用的shell。

+0

中添加了输出我不确定oracle用户是否拥有'crontab,但用户是在cron.allow列表中,并且是root。当我得到机会并让你知道它是怎么回事时,我会尝试它 – Jay 2013-02-19 03:42:37

+0

“拥有”意味着用户可以创建和编辑crontab。 cron.allow这样做。既然你执行了crontab -l好,那么你很好。 – 2013-02-19 03:47:14

+0

我们添加了行来设置脚本中的环境变量,然后它就没事了。 – Jay 2013-02-20 02:16:34