2013-02-13 49 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