【问题标题】:cron job didn't run with oracle path and with path bash script didn't runcron 作业未使用 oracle 路径运行,并且路径 bash 脚本未运行
【发布时间】:2019-05-19 14:17:56
【问题描述】:

**我编写了一个 shell 脚本,其中错误是当我导出 oracle 路径时,玉米作业成功运行到 EOF,它显示 bash 命令未找到,如 cut,ls..etc ** 主要问题是没有导出 oracle 路径 shell 脚本运行成功并且玉米作业没有执行

#!/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

主要要求是我想为该脚本运行玉米作业并对其进行操作

【问题讨论】:

  • 请粘贴您的脚本there 以解决问题。
  • 脚本中没有错误,只有在使用 oracle sql 文件的导出路径执行时我得到的错误是在玉米作业中,当我使用导出路径时,bash 脚本不起作用,这是我遇到的主要问题@Cyrus

标签: bash oracle shell cron


【解决方案1】:

我不太了解你的问题描述,但我认为问题可能出在这个命令上:

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 程序中使用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-18
    • 1970-01-01
    • 2012-05-12
    • 2020-02-28
    • 1970-01-01
    • 2014-11-02
    相关资源
    最近更新 更多