crontab定時任務環境變數丟失問題
這兩天一直在忙於將一項任務全自動化,以便節省人工操作,由於伺服器是linux,用到了crontab命令,具體命令大致如下:
46 21 * * * night_job.sh>>night_job.log 2>&1
為了便於跟進查詢執行狀態和日誌,將任務的輸出重定向到night_job.log日誌中,由於在night_job.sh中包含了
數量眾多的sqlldr:sqlloader匯入命令和sqlplus命令,開始測試時並未得到預期的結果,通過日誌觀察到
line 136: sqlldr: command not found
line 1: sqlplus: command not found
而當前使用者的PATH環境變數中已經包含了$ORACLE_HOME/bin,按理說應該讀取到,推測是可能是crontab命令並沒有初始化當前使用者下的環境變數導致。
綜合了網上的其他文章,通過如下幾種方式解決:
1、將.bash_profile中的設定拷貝到crontab執行的指令碼中
2 、在crontab執行的shell指令碼先執行./bash_profile
3、source dir/.bash_profile
以上三種處理方式中
1最繁瑣,如果使用者下增加環境變數設定,可能仍然需要修改該指令碼
2相對簡單些,但是./執行要切換到使用者根目錄執行,在執行其他指令碼之前要確保路徑是否正確
3最簡單,直接載入環境變數即可
按照3中的方式在其他任務執行之前加入該命令,任務執行成功。問題解決。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7483882/viewspace-1064438/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- crontab定時任務環境變數使用問題變數
- crontab定時任務
- 8.4linux定時任務-環境變數-資料庫Linux變數資料庫
- CentOS Crontab(定時任務)CentOS
- Linux crontab 定時任務Linux
- Linux 定時任務(crontab)Linux
- Linux - crontab(定時任務)Linux
- 定時任務crontab 詳解
- (定時任務)crontab 的用法
- crontab定時任務維護
- 【Django】Django定時任務之-crontabDjango
- linux之 crontab 定時任務Linux
- 在solaris下crontab 定時任務
- linux的定時任務crontabLinux
- Linux Crontab定時任務命令Linux
- Crontab 定時任務命令詳解
- Linux Crontab 定時任務[轉]Linux
- 關於環境變數設定的問題變數
- Laravel 定時任務以及 crontab 安裝Laravel
- Crontab定時任務排程介紹
- 排查linux 定時任務cron crontabLinux
- Crontab 任務不執行問題
- Linux下的定時任務crontab設定Linux
- linux crontab 定時任務 郵件問題 及其相關的 dead.letter 問題Linux
- Django定時任務Django-crontab的使用Django
- 【Linux定時任務】crontab使用經驗Linux
- [Linux]crontab定時任務自動化Linux
- Linux Crontab 定時任務 命令詳解Linux
- ORACLE_SID環境變數設定的問題Oracle變數
- linux定時任務的設定 crontab 配置指南Linux
- linux定時任務url帶引數的問題Linux
- 定時自動啟動任務crontab命令用法
- 利用cygwin建立windows下的crontab定時任務Windows
- linux 定時任務 crontab 詳細解釋!Linux
- 設定環境變數變數
- crontab使用說明【一文搞懂Linux定時任務Crontab】Linux
- linux設定crontab定時執行任務計劃Linux
- windows定時任務執行路徑問題Windows