就是这样,我在rman中创建了3个文件来执行backup database命令
test.sh:
#!/bin/bash
sqlplus /nolog @/u01/conectar.sql
conectar.sql:
connect sys/manager as sysdba
ho rman target mydatabase/mypassword @/u01/backup.sh
backup.sh:
#!/bin/bash
RUN {backup database;}
然后我为文件做了所有 chmod u+x
以使它们可执行,然后 export EDITOR=nano
来更改cron编辑器 .
当我去 crontab -e i put
00 15 * * * /u01/test.sh
如果我手动clic这个test.sh,操作正常运行,但然后在crontab中我收到“你收到邮件”的消息
来自root@localhost.localdomain Thu Dec 22 16:20:01 2016返回路径:X-Original-To:oracle Delivered-To:oracle@localhost.localdomain收到:by localhost.localdomain(Postfix,from userid 500)id 956CD41D4B; 2016年12月22日星期四16:20:01 -0400(AST)来自:root@localhost.localdomain(Cron Daemon)收件人:oracle@localhost.localdomain主题:Cron /u01/test.sh内容类型:text / plain; charset = UTF-8自动提交:自动生成的X-Cron-Env:X-Cron-Env:X-Cron-Env:X-Cron-Env:X-Cron-Env:消息ID:<20161222202001.956CD41D4B @ localhost.localdomain>日期:星期四,2016年12月22日16:20:01 -0400(AST)/u01/test.sh:line 3:sqlplus:command not found“
请问你能为我重新编写脚本或crontab吗?如果你能回答我会很感激的确切修改,我不是这个环境的专家,所以需要回答的一般知识会让我一样,谢谢 .
1 回答
你可以通过多种方式实现这一目标:
PATH=$PATH:/full/path/to/oracle/bin
00 15 * * * PATH=$PATH:/full/path/to/oracle/bin /u01/test.sh
test.sh
源另一个设置Oracle环境的共享脚本:source /path/to/oracle_env.sh
我更喜欢第三种方法,因为它非常灵活,它可以帮助我们保持crontab的整洁 . .bash_profile应仅用于交互式shell - 与计划脚本共享它并不好,特别是在 生产环境 中 .