Я пытаюсь настроить сценарий bash, в котором подключается к экземпляру Oracle для проверки запланированных различных заданий dba, и если заданное задание c не выполняется, мне нужно отобразить сообщение об ошибке.
Вот сценарий, который я написал, и он работает частично, сценарий работает только до достижения оператора IF
#!/usr/bin/env bash
#write output of the sql query to an output file
output_file="/tmp/datatool_output.csv"
> $output_file
echo "
SET FEED OFF
SET PAGESIZE 0
SET COLSEP ,
SET linesize 100
SET TRIMSPOOL ON
SET TRIMOUT ON
SELECT JOB_NAME, STATE FROM DBA_SCHEDULER_JOBS where job_name ='run_LoadDatatoolStore';
exit" | sqlplus -s sqlplus -s "username/password@dbip:dbport/SID" >> $output_file
a_var=($(awk -F',' '{print $2}' $output_file | sed 's/\s//g' | xargs))
for item in ${a_var[@]}
do
val=$(echo $item | awk -F',' '{print $1}')
if [[ $val -eq "SCHEDULED" ]] || [[ $val -eq "RUNNING" ]] ; then
echo "OK: The job LoadDatatool is either Scheduled or in the Running state"
exit 0 # this is used for interpretation by nagios to display no alert alert
else [[ $val -eq "BLOCKED" ]]
echo "CRITICAL: The Db scheduler job LoadDatatool is in a Blocked state"
exit 2
fi
Я получаю
test.sh: line 24: syntax error: unexpected end of file
, когда я Запустите скрипт. Любая помощь в выяснении этого приветствуется.
Спасибо, Картик