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變數資料庫
- Linux crontab 定時任務Linux
- 排查linux 定時任務cron crontabLinux
- linux crontab 定時任務 郵件問題 及其相關的 dead.letter 問題Linux
- Laravel 定時任務以及 crontab 安裝Laravel
- linux定時任務的設定 crontab 配置指南Linux
- Django定時任務Django-crontab的使用Django
- crontab使用說明【一文搞懂Linux定時任務Crontab】Linux
- Linux環境變數問題彙總Linux變數
- js浮點數丟失問題JS
- 日誌切割logrotate和定時任務crontab詳解logrotate
- 簡單介紹Shell中的定時任務 crontab
- python設定環境變數(臨時和永久)Python變數
- windows定時任務執行路徑問題Windows
- linux 如何建立定時任務?crontab -e 定時任務使用的時間是系統時間Linux
- ansible設定環境變數變數
- ansible 設定環境變數變數
- export 設定環境變數Export變數
- Linux設定環境變數Linux變數
- 定時任務裡面事務不生效問題
- crontab任務
- 什麼是環境變數?Python中如何設定環境變數?變數Python
- celery筆記七之週期/定時任務及crontab定義筆記
- Linux Crontab Shell指令碼實現秒級定時任務Linux指令碼
- Linux定時任務Crontab不起作用的排查步驟Linux
- Linux下的crontab定時執行任務命令詳解Linux
- 在dotnet core實現類似crontab的定時任務
- Centos 7下利用crontab定時執行任務詳解CentOS
- rust程式中設定和訪問環境變數Rust變數
- [20201123]NLS_LANG環境變數問題.txt變數
- linux 使用crontab 建立定時任務Linux
- crontab 新增計劃任務的時候報錯疑問?
- java jdk 設定環境變數JavaJDK變數
- 給root外的其他使用者新增 crontab 定時任務
- Linux定時任務crontab通俗易懂簡單扼要地解析Linux
- Mac 設定環境變數的位置、檢視和新增PATH環境變數Mac變數
- 什麼是環境變數?python設定環境變數有什麼用?變數Python