[英]Sqlplus command not found when running from crontab
就是這種情況,我在rman中制作了3個文件來執行備份數據庫命令
#!/bin/bash
sqlplus /nolog @/u01/conectar.sql
connect sys/manager as sysdba
ho rman target mydatabase/mypassword @/u01/backup.sh
#!/bin/bash
RUN {backup database;}
然后,我對文件執行了所有的chmod u+x
以使其可執行,然后export EDITOR=nano
來更改cron編輯器。
當我去crontab -ei put
00 15 * * * /u01/test.sh
如果我手動選擇此test.sh,則該操作將正常運行,但是在crontab中,此消息將顯示“您收到了郵件”
來自root @ localhost.localdomain,2016年12月22日星期四,星期四返回路徑:X-原始-至:oracle交付至:oracle@localhost.localdomain接收:由localhost.localdomain(后綴,來自用戶ID 500)ID 956CD41D4B ; 2016年12月22日,星期四16:20:01 -0400(AST)發件人:root@localhost.localdomain(Cron守護程序)收件人: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:第3行:sqlplus:未找到命令”
請為我重新制作腳本或crontab嗎? 如果您能以我將不勝感激的確切答案回答,那么我不是這種環境下的專家,因此, 所需的一般知識答案將使我保持不變,謝謝。
您可以通過多種方式進行操作:
在cron行之前:
PATH=$PATH:/full/path/to/oracle/bin
或在cron行本身上:
00 15 * * * PATH=$PATH:/full/path/to/oracle/bin /u01/test.sh
讓您的腳本test.sh
另一個設置您的Oracle環境的共享腳本:
source /path/to/oracle_env.sh
我喜歡第三種方法,因為它非常靈活,可以幫助我們使crontab保持整潔。 .bash_profile應該僅用於交互式外殼程序-與計划腳本共享它是不好的,尤其是在生產環境中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.