START_DATE=`date '+%d%m%Y%H%M%S'`
DAYOFWEEK=$(date +"%u")
START_HOUR=$(date +"%H")
run_dt=`date '+%d%m%Y'`
run_hr=`date '+%H%M'`
echo 'run_hr' $run_hr
echo 'Shell script started'
echo ${START_DATE}
echo ${DAYOFWEEK}
echo ${START_HOUR}
while [ $run_hr -lt 21];
do
if [ $DAYOFWEEK = 1 ] || [ $DAYOFWEEK = 2 ] || [ $DAYOFWEEK = 3 ] || [ $DAYOFWEEK = 4 ] || [ $DAYOFWEEK = 5 ] || [ $DAYOFWEEK = 6 ]; then
echo 'inside while'
sqlplus -s xx/abcd<< END2
set timing on;
select to_char(sysdate,'dd-mm-yyyyhh24:mi') starttime from dual;
#exec my_proc();
select to_char(sysdate,'dd-mm-yyyyhh24:mi') endtime from dual;
END2
sleep 120
let run_hr=`date '+%H%M'`
echo 'run_hr' $run_hr
elif [ $DAYOFWEEK = 7 ]; then
echo 'inside while on sunday'
sqlplus -s xx/abcd<< END2
set timing on;
select to_char(sysdate,'dd-mm-yyyyhh24:mi') starttime from dual;
#exec my_proc();
select to_char(sysdate,'dd-mm-yyyyhh24:mi') endtime from dual;
END2
sleep 120
if [ $run_hr -eq 14 ]; then
sleep 10800else
let run_hr=`date '+%H%M'`
echo 'run_hr' $run_hr
echo 'Nothing'
fi
else
echo 'off'
fi
done
echo 'Exiting'
通过保持while循环,proc每次都在早上9点由cron启动。但是星期天,我必须在14:00睡觉时保持3小时。 你能告诉我如何让它在周日睡3小时。 感谢您的帮助!
答案 0 :(得分:0)
您可以尝试创建另一个脚本(如监视器脚本)来执行您发布的脚本: monitor_script:将它放在crontab中并每分钟执行一次 procedure_script:你的脚本
monitor_script的目的是:
此致 ç