0

我有一个简单的脚本来停止和启动服务(Oracle Hyperion)

#!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

有人可以就这个问题提出建议吗?谢谢。

4

1 回答 1

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。

于 2013-02-15T12:32:25.047 回答