![]() ![]() |
![]() |
File: [Development] / JSOC / proj / timed / scripts / runtdsynop
(download)
Revision: 1.4, Tue Jan 13 21:31:58 2015 UTC (8 years, 4 months ago) by rick Branch: MAIN CVS Tags: Ver_9-4, Ver_9-3, Ver_9-2, Ver_9-1, Ver_9-0, Ver_8-8, Ver_8-7, Ver_8-12, Ver_8-11, Ver_8-10 Changes since 1.3: +82 -13 lines modified for JSOC release 8.7 |
#!/bin/csh -f # script to run multiple instances of trackings plus analyses in the # time-distance synoptic series for a set of given time centers # The invoked scripts should be run every 8 hours to maintain cadence with # observations set TW set TFLG @ TEST = 0 # set to 1 for production in namespace hmi_test if ("$1" =~ '-test') then @ TEST = 1 set TW = test set TFLG = -test shift endif if ($#argv < 1) then echo "usage: $0 [-test] YYMMDD [YYMMDD [spacing]]" echo " default spacing = 480 min" exit endif @ YYMMDD0 = `echo $1 | sed -e "s/^0*//"` @ YYMMDD1 = $YYMMDD0 @ SLEEP = 480 if ($#argv > 1) then @ YYMMDD1 = `echo $2 | sed -e "s/^0*//"` if ($#argv > 2) @ SLEEP = `echo $3 | sed -e "s/^0*//"` endif @ SLEEP *= 60 set PROG = `basename $0` set NOTIFY = `whoami` set SCRIPT = tdsynop if ($TEST) then set NMSP = hmi_test set ARG = -test else set NMSP = hmi set ARG endif set PLID = $NMSP\tdVsyn foreach CMD ($SCRIPT) which $CMD > /dev/null if ($status) then if (!(-x $CMD)) then echo Error: command $CMD not in path\; script will fail exit endif endif end set QUEUE = j.q # auxiliary files set HOSTID = `hostname | awk -F. '{print $1}'` set PROCID = $HOSTID\_$$ set TMPFSLOC = ~rick/hmi/tmpfs set TMPARSE = ~rick/bin/tmplocs set ALTDIR = ~rick/hmi if (-x $TMPARSE) then set XXLOCS = (`$TMPARSE $TMPFSLOC $ALTDIR`) set TEMP = $XXLOCS[1] set SCRT = $XXLOCS[2] else set TEMP = /tmp set SCRT = /tmp endif set MSGS = $TEMP/msgs if (!(-d $MSGS)) mkdir $MSGS set RLOG = $SCRT/$PLID.log set MMSG = $MSGS/msg.$PROCID set QRES = $TEMP/qres if (!(-d $QRES)) mkdir $QRES # check gatekeeper for permission to proceed set TURN = ~rick/hmi/pikewatch set PIKE = ~rick/hmi/pike if ($TEST) then set RES = (`$TURN $PIKE -test`) else set RES = (`$TURN $PIKE`) endif @ NOGO = $RES[1] if ($NOGO) then set NOW = `date +%Y.%m.%d_%T` echo "HMI ring-diagrams $TW pipeline aborted" > $MSGS/subj.$PROCID echo "-> $NOW Script $PROG aborted! <-" >> $MMSG if ($NOGO < 0) then echo " watcher script $TURN called with invalid argument" >> $MMSG echo " or file $PIKE has invalid format" >> $MMSG else @ HRCT = $NOGO / 3600 @ NOGO -= $HRCT * 3600 @ MNCT = $NOGO / 60 @ NOGO -= $MNCT * 60 echo -n " file $PIKE contains NoGo signal for $HRCT" >> $MMSG echo `printf :%02d:%02d $MNCT $NOGO` >> $MMSG if ($#RES > 1) then echo " Reason: $RES[2-]" >> $MMSG endif endif echo `whoami` > $MSGS/list.$PROCID echo $SUBJ > $MSGS/subj.$PROCID exit endif @ YYMMDD = $YYMMDD0 set MOLEN = (31 28 31 30 31 30 31 31 30 31 30 31) @ YR = $YYMMDD / 10000 if ($YR % 4 == 0) set MOLEN = (31 29 31 30 31 30 31 31 30 31 30 31) while ($YYMMDD <= $YYMMDD1) foreach HR (04 12 20) # check gatekeeper for permission to proceed if ($TEST) then set RES = (`$TURN $PIKE -test`) else set RES = (`$TURN $PIKE`) endif @ NOGO = $RES[1] if ($NOGO) goto TURNOUT set NOW = `date +%Y.%m.%d_%T` set QINFO = `qsub -q $QUEUE -e $QRES -o $QRES $SCRIPT $ARG $YYMMDD $HR` if ($#QINFO) then set QPID = `echo $QINFO | awk '{print $3}'` echo $NOW $SCRIPT $ARG $YYMMDD $HR submitted to $QUEUE as job $QPID >> $RLOG if ($YYMMDD < $YYMMDD1) then sleep $SLEEP else if ($HR < 20) then sleep $SLEEP endif else echo $NOW Failed to submit $SCRIPT $ARG $YYMMDD $HR >> $RLOG endif end @ YR = $YYMMDD / 10000 @ MO = ($YYMMDD % 10000) / 100 @ DA = $YYMMDD % 100 @ DA++ if ($DA > $MOLEN[$MO]) then @ MO++ @ DA = 1 if ($MO > 12) then @ MO = 1 @ YR++ set MOLEN = (31 28 31 30 31 30 31 31 30 31 30 31) if ($YR % 4 == 0) set MOLEN = (31 29 31 30 31 30 31 31 30 31 30 31) endif endif @ YYMMDDL = $YYMMDD @ YYMMDD = $YR`printf %02d $MO``printf %02d $DA` end if ($?YYMMDDL) then echo -n "Final script $SCRIPT $YYMMDDL $HR submitted " >> $MMSG date '+%e %b %H:%M' >> $MMSG endif echo "HMI time-distance $TW pipeline run" > $MSGS/subj.$PROCID echo "$NOTIFY" > $MSGS/list.$PROCID exit TURNOUT: echo "-> Script $PROG aborted! <-" >> $MMSG echo -n "Final script $SCRIPT submitted " >> $MMSG date '+%e %b %H:%M' >> $MMSG tail -1 $RLOG >> $MMSG if ($NOGO < 0) then echo " watcher script $TURN called with invalid argument" >> $MMSG echo " or file $PIKE has invalid format" >> $MMSG else @ HRCT = $NOGO / 3600 @ NOGO -= $HRCT * 3600 @ MNCT = $NOGO / 60 @ NOGO -= $MNCT * 60 echo -n " file $PIKE contains NoGo signal for $HRCT" >> $MMSG echo `printf :%02d:%02d $MNCT $NOGO` >> $MMSG if ($#RES > 1) then echo " Reason: $RES[2-]" >> $MMSG endif endif
Karen Tian |
Powered by ViewCVS 0.9.4 |