2013-03-21 79 views
1

我有一个计划如下的cron作业。它将执行的操作是在Oracle中调用RMAN,然后清除oracle数据库中1天的所有记录日志。但问题在于它没有通过cron工作得到执行。但是如果我从提示中执行相同的脚本,则很好地通过RMAN删除日志。请帮我在SHEDULING这个脚本...脚本Linux Cronjob调度问题

05 07 * * * /x01/rman_backup/mahesh/logde.sh 

内容如下

#!/bin/bash 
/x01/oracle/app/oracle/product/11.2.0/db_1/bin/rman cmdfile=/x01/rman_backup/mahesh /logdelete.rcv 

的logdelete.rcv的内容如下

connect target/
run 
    { 
    delete archivelog all completed before 'trunc(sysdate)'; 
    crosscheck archivelog all; 

    } 
exit; 

请人帮忙我在安排这个。我在SUSE Linux版本11中使用这种方法

+0

使用输出重定向到文件来查看发生了什么,例如... logde.sh> /tmp/log.txt 2>&1 – 2013-03-21 06:22:32

+0

是这样的吗? 06 12 * * * /x01/rman_backup/mahesh/logde.sh> /x01/rman_backup/mahesh/output.txt – user1793864 2013-03-21 06:30:09

+0

06 12 * * * /x01/rman_backup/mahesh/logde.sh>/x01/rman_backup/mahesh/output.txt的2>&1个 – 2013-03-21 06:36:46

回答

0

通常,在您的cronjob中使用输出重定向来收集文件中的错误,例如,

06 12 * * * /x01/rman_backup/mahesh/logde.sh > /x01/rman_backup/mahesh/output.txt 2>&1

具体来说,您的问题可能是logdelete.rcv不会从cron的发现,因为这项工作将在$ HOME执行这样文件就需要在那里。如果不是,请指定它的完整路径。

+0

消息文件RMAN .msb未找到 验证ORACLE_HOME设置正确 上述两种错误出现WHT我应该改变? – user1793864 2013-03-21 06:51:46

+0

您需要定义执行脚本的二进制文件:'06 12 * * */bin/sh ...' – fedorqui 2013-03-21 09:19:31

0

您必须为控制台执行一些初始化,但不能在cron执行中完成。手动初始化变量或手动在您的cron行中输入配置文件文件。