在oracle账户下,建立oracle备份脚本bak.sh,双击该脚本可以实现数据的备份 
但是我用linux中的cron 定时计划来实现该脚本的每天自动备份,缺发现该任务计划不执行,请问是怎么回事? 
具体信息如下: 
我都是oracle账号下操作的: 
$ crontab -e 
输入 50 23 * * * /oraclebak/bak.sh 保存后,用crontab -l 能否查询到上述命令 
上述路径都是正确的,但到了该时间就是不执行该任务,起初以为是服务没启动,后来通过查看服务列表中的crond服务,是启动的,并且我也重启! 请高手帮我看下是什么问题

解决方案 »

  1.   


    楼主检查下 bak.sh  是否有权限ls -lrt bak.sh 给这个脚本777 权限看看, 这个错误我也犯过呀..chmod 777 bak.sh 
      

  2.   

     用crontab -l 能否查询到上述命令  都不行么。你在脚本里加一些log信息,然后在看看log有没有出来。
      

  3.   

    在bak.sh里有没有设置一些环境变量呀。你用oracle登录 和 执行 corntab是不一样的环境导致的吧。按上面的在脚本里加环境设置和一些log信息。
      

  4.   

    我现在在oracle 账号下切换成root 来操作
    具体如下:
    # crontab -e
    00 23 * * * su - oracle -c  "/home/oracle/shell/backup.sh &"
    保存后 重启crond服务,发现还是不行用crontab -l 是能否看到的2楼的,我已经赋予bak.sh 755权限了 用ls -lrt bak.sh 结果如下:
    -rwxr-xr-x l oracle oinstall 143 10-12 22:09 bak.sh
      

  5.   

    上述写错了,应该是:
    我现在在oracle 账号下切换成root 来操作 
    具体如下: 
    # crontab -e 
    00 23 * * * su - oracle -c  "/oraclebak/bak.sh &" 
    保存后 重启crond服务,发现还是不行 用crontab -l 是能否看到的 2楼的,我已经赋予bak.sh 755权限了 用ls -lrt bak.sh 结果如下: 
    -rwxr-xr-x l oracle oinstall 143 10-12 22:09 bak.sh
      

  6.   

    你最好把bak.sh的内容发上来看看另外,你的crontab用的有点怪,我一般都是用root用户写脚本,不需要在crontab里边再切用户,只需要在脚本中设置环境变量就可以了,直接执行脚本
      

  7.   

    问题已经解决 现共享一下
    备份脚本bak.sh
    #!/bin/sh 
    a=$(date +%Y%m%d)
    echo $a 
    su - oracle -c "/u01/app/oracle/product/11.1.0/db_1/bin/exp username/password file=/oraclebak/$a.dmp"在root账户下操作
    crontab -e
    00 23 * * * /oraclebak/bak.sh 保存后即可