簡體   English   中英

cron作業未與oracle路徑一起運行,且路徑bash腳本未運行

[英]cron job didn't run with oracle path and with path bash script didn't run

**我編寫了一個shell腳本,其中的錯誤是我導出oracle路徑時玉米作業成功運行到EOF,並且它顯示未找到像cut,ls..etc這樣的bash命令。** 主要問題是沒有導出oracle路徑外殼程序腳本成功運行,並且玉米作業未執行

#!/bin/bash
function execute_sql(){
export ORACLE_HOME=/Oracle/app/oracle/product/11.2.0.2/db_1
export SET PATH3=/Oracle/app/oracle/product/11.2.0.2/db_1/bin:. 
sqlplus system@xe/oracle123 << EOF > /usr/home/cron.log
@/usr/home/usr/date_expired.sql > /usr/home/usr/date_EXPIRED.txt
EOF
return
exit
}
execute_sql

function processing(){
SourceFile="/usr/home/usr/date_EXPIRED.txt"

#if [ -f "$SourceFile" ]; then

    cut -c-3 /usr/home/usr/date_EXPIRED.txt  |sort |uniq 
>/usr/home/usr/seq-TD_EXP.txt
    file=`cat /usr/home/usr/seq-TD_EXP.txt`
    j=_TDA_EXP
    for i in $file
    do
    awk -F "|" '{if (substr($file,1,3)=="'$i'" ) print $2;}' 
/usr/home/usr/date_EXPIRED.txt > /usr/home/usr/usr_seq/$i$j$today.txt
    done
#fi
rm -r /usr/home/usr/seq-TD_EXP.txt
return
}
processing
exit

主要要求是我要為該腳本運行玉米作業並對其進行操作

我不太了解您的問題描述,但我認為問題可能出在以下命令上:

export SET PATH3=/Oracle/app/oracle/product/11.2.0.2/db_1/bin:.

我認為您想要的是:

export PATH="/Oracle/app/oracle/product/11.2.0.2/db_1/bin:$PATH"

說明:“ SET ”不屬於該變量, PATH3不是一個相關變量,您應該保留舊的PATH (將$PATH添加到新值中)。 同樣,在PATH添加“ . ”並不總是安全的。

我還建議清理awk命令:

awk -F "|" -v "i=$i" '{if (substr($file,1,3)==i ) print $2;}'

說明: -v "i=$i"將shell變量i復制到同名的awk變量; 您可以直接在awk程序中使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM