繁体   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