我有一个简单的脚本可以停止和启动服务(Oracle Hyperion)
#!bin/ksh
/path/to/dir/stop.sh
sleep 1200
/path/to/dir/start.sh
我已经安排了它每晚都运行,但之后数据库连接存在问题。但是当我手动运行stop.sh
和start.sh
时,就没有这样的问题。显然这份工作没有完全完成。
以下是crontab -l
00 02 * * * /export/home/oracle/scheduled_restart.sh
有人可以就此问题提出建议吗?感谢。
答案 0 :(得分:1)
在执行完全相同的代码期间,cron作业与命令行不同的常见原因是环境,特别是ORACLE_SID,TWO_TASK,LD_LIBRARY_PATH等变量。
假设oracle用户拥有crontab: 当一个作业由crond运行时,它就相当于suracle,而不是suracle。尝试做一些事情以确保命令提供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。