| 31 | 
  | 
  | 
| 32 | 
 # defaults | 
 # defaults | 
| 33 | 
 HERE=`pwd` | 
 HERE=`pwd` | 
| 34 | 
  | 
 sufx=$$ | 
| 35 | 
 #INDIR="/u/u2/jmc/Mail/MITgcm-test" | 
 #INDIR="/u/u2/jmc/Mail/MITgcm-test" | 
| 36 | 
 #BASEDIR="/u/u0/httpd/html/testing/results" | 
 #BASEDIR="/u/u0/httpd/html/testing/results" | 
| 37 | 
 RHOST="jm_c@mitgcm-mm.mit.edu" ; M_DIR="Mail/MITgcm-test" | 
 RHOST="jm_c@mitgcm-mm.mit.edu" ; M_DIR="Mail/MITgcm-test" | 
| 42 | 
 ADDRERR= | 
 ADDRERR= | 
| 43 | 
 MUNPACK=$HERE/munpack | 
 MUNPACK=$HERE/munpack | 
| 44 | 
 UnpTmpD="/var/tmp/m-prts-$USER" | 
 UnpTmpD="/var/tmp/m-prts-$USER" | 
| 45 | 
 TR_LIST='TTT.'$$ | 
 TR_LIST="TTT.$sufx" | 
| 46 | 
 TEMPDIR=/tmp/prc_emails | 
 TEMPDIR="/tmp/prc_emails_$USER" | 
| 47 | 
 STDOUT=$TEMPDIR/'outp.'$$ | 
 STDOUT="$TEMPDIR/outp.$sufx" | 
| 48 | 
 ERRMSG=/tmp/tmp.$$ | 
 ERRMSG="/tmp/tmp.$sufx" | 
| 49 | 
 PRT=1 | 
 PRT=1 | 
| 50 | 
  | 
  | 
| 51 | 
 #---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| | 
 #---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| | 
| 111 | 
         echo "ERROR: \"$MUNPACK\" is not executable" | 
         echo "ERROR: \"$MUNPACK\" is not executable" | 
| 112 | 
         exit 2 | 
         exit 2 | 
| 113 | 
 fi | 
 fi | 
| 114 | 
  | 
  | 
| 115 | 
  | 
 #-- set OUTDIR (if not yet set) and create it (if not already there) | 
| 116 | 
 if test "x$OUTDIR" = x ; then | 
 if test "x$OUTDIR" = x ; then | 
| 117 | 
   OUTDIR="$BASEDIR/$monthDir" | 
   OUTDIR="$BASEDIR/$monthDir" | 
| 118 | 
 else | 
 else | 
| 119 | 
   monthDir=0 | 
   monthDir=0 | 
| 120 | 
 fi | 
 fi | 
| 121 | 
  | 
 oldMsg=0 | 
| 122 | 
 if test ! -e $OUTDIR ; then | 
 if test ! -e $OUTDIR ; then | 
| 123 | 
     mkdir $OUTDIR | 
     mkdir $OUTDIR | 
| 124 | 
     RETVAL=$? | 
     RETVAL=$? | 
| 131 | 
     fi | 
     fi | 
| 132 | 
     chgrp gcmpack $OUTDIR | 
     chgrp gcmpack $OUTDIR | 
| 133 | 
     chmod 775 $OUTDIR | 
     chmod 775 $OUTDIR | 
| 134 | 
  | 
     #-- In case a new-outpdir is made, process old files from "postponed" | 
| 135 | 
  | 
     #   (if any old msg there) by changing INDIR to ../postponed | 
| 136 | 
  | 
     if test $monthDir != 0 ; then | 
| 137 | 
  | 
       oldMsg=`ls -1 ${INDIR}/../postponed | wc -l` | 
| 138 | 
  | 
     fi | 
| 139 | 
  | 
     if test $oldMsg != 0 ; then | 
| 140 | 
  | 
       newInD=`dirname $INDIR` | 
| 141 | 
  | 
       INDIR="$newInD/postponed" | 
| 142 | 
  | 
       echo " Change INDIR to '$INDIR' ($oldMsg old messages)" | 
| 143 | 
  | 
       oldMsg=1 | 
| 144 | 
  | 
     fi | 
| 145 | 
  | 
 fi | 
| 146 | 
  | 
  | 
| 147 | 
  | 
 #-- check that $TEMPDIR exist (needed for STDOUT) | 
| 148 | 
  | 
 if test ! -d $TEMPDIR ; then | 
| 149 | 
  | 
     mkdir $TEMPDIR | 
| 150 | 
  | 
     RETVAL=$? | 
| 151 | 
  | 
     if test "x$RETVAL" != x0 ; then | 
| 152 | 
  | 
         date | 
| 153 | 
  | 
         echo "ERROR: directory \"$TEMPDIR\" doesn't exist and can't be created" | 
| 154 | 
  | 
         exit 4 | 
| 155 | 
  | 
     fi | 
| 156 | 
 fi | 
 fi | 
| 157 | 
  | 
  | 
| 158 | 
  | 
  | 
| 159 | 
 #---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| | 
 #---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| | 
| 160 | 
 #- 1) check that $INDIR is empty | 
 if test $oldMsg = 0 ; then | 
| 161 | 
 nbMsg=`ls -1 $INDIR | wc -l` | 
  | 
| 162 | 
 if test $nbMsg != 0 ; then | 
 #- 1) check that $INDIR is empty (except .tar.gz files) | 
| 163 | 
  | 
   nbMsg=`ls -1 $INDIR | grep -v '\.tar\.gz$' | wc -l` | 
| 164 | 
  | 
   if test $nbMsg != 0 ; then | 
| 165 | 
     date | 
     date | 
| 166 | 
     echo "ERROR: '$INDIR' is not empty ! --> exit" | 
     echo "ERROR: '$INDIR' is not empty ! --> exit" | 
| 167 | 
     exit 4 | 
     exit 5 | 
| 168 | 
 fi | 
   fi | 
| 169 | 
  | 
  | 
| 170 | 
 nbMsg=0; ORIG=${RHOST}:$M_DIR | 
   nbMsg=0; ORIG=${RHOST}:$M_DIR | 
| 171 | 
 #- 2) scp all msg from ORIG to INDIR | 
 #- 2) scp all msg from ORIG to INDIR | 
| 172 | 
 cd $INDIR | 
   cd $INDIR | 
| 173 | 
     scp -p ${RHOST}:$M_DIR/\* . > $STDOUT 2>&1 | 
     scp -p ${RHOST}:$M_DIR/msg.\* . > $STDOUT 2>&1 | 
| 174 | 
     RETVAL=$? | 
     RETVAL=$? | 
| 175 | 
     if test "x$RETVAL" != x0 ; then | 
     if test "x$RETVAL" != x0 ; then | 
| 176 | 
      #echo " RETVAL='$RETVAL'" | 
      #echo " RETVAL='$RETVAL'" | 
| 180 | 
         date | 
         date | 
| 181 | 
         cat $STDOUT | 
         cat $STDOUT | 
| 182 | 
         echo "ERROR: when trying to scp msg from $ORIG to $INDIR" | 
         echo "ERROR: when trying to scp msg from $ORIG to $INDIR" | 
| 183 | 
         rm -f $STDOUT | 
        #rm -f $STDOUT | 
| 184 | 
         exit 5 | 
         exit 6 | 
| 185 | 
     fi | 
     fi | 
| 186 | 
     rm -f $STDOUT | 
     listMsg='' ; nbMsg=`ls -1 msg.* 2>/dev/null | wc -l` | 
 | 
     nbMsg=`ls -1 | wc -l` | 
  | 
| 187 | 
     if test $nbMsg != 0 ; then | 
     if test $nbMsg != 0 ; then | 
| 188 | 
         echo "> scp $nbMsg msg from '$ORIG' to '$INDIR'" | 
         echo "> scp $nbMsg msg from '$ORIG' to '$INDIR'" | 
| 189 | 
         listMsg=`ls -1` | 
         listMsg=`ls -1 msg.*` | 
| 190 | 
     fi | 
         #- And rename msg by adding unique suffix | 
| 191 | 
 cd $HERE | 
         for xx in $listMsg ; do | 
| 192 | 
 #echo " nbMsg='$nbMsg' ; listMsg='$listMsg'" | 
           mv $xx $xx.$sufx | 
| 193 | 
  | 
         done | 
| 194 | 
  | 
     fi | 
| 195 | 
  | 
    #rm -f $STDOUT | 
| 196 | 
  | 
   cd $HERE | 
| 197 | 
  | 
   #echo " nbMsg='$nbMsg' ; listMsg='$listMsg'" | 
| 198 | 
  | 
  | 
| 199 | 
 #- 3) remove from ORIG all msg that we got here (this way it should be safe) | 
 #- 3) remove from ORIG all msg that we got here (this way it should be safe) | 
| 200 | 
 if test $nbMsg != 0 ; then | 
   if test $nbMsg != 0 ; then | 
| 201 | 
    #echo "ssh $RHOST cd $M_DIR \; /bin/rm -f $listMsg" | 
    #echo "ssh $RHOST cd $M_DIR \; /bin/rm -f $listMsg" | 
| 202 | 
     ssh $RHOST cd $M_DIR \; /bin/rm -f $listMsg | 
     ssh $RHOST cd $M_DIR \; /bin/rm -f $listMsg | 
| 203 | 
     RETVAL=$? | 
     RETVAL=$? | 
| 204 | 
     if test "x$RETVAL" != x0 ; then | 
     if test "x$RETVAL" != x0 ; then | 
| 205 | 
         echo "ERROR ( $RETVAL ) when trying to ssh+rm $nbMsg msg from $ORIG" | 
         echo "ERROR ( $RETVAL ) when trying to ssh+rm $nbMsg msg from $ORIG" | 
| 206 | 
     #- note: Checking for return-value fron ssh command is not good enough, | 
     #- note: Checking for return-value from ssh command is not good enough, | 
| 207 | 
     #        therefore we do not terminate if non-zero | 
     #        therefore we do not terminate if non-zero | 
| 208 | 
        #exit 6 | 
       # exit 7 | 
| 209 | 
     fi | 
     fi | 
| 210 | 
 #- This is the log file that current "check_outp" (run on baudelaire) is checking: | 
   #- This is the log file that "check_outp" (run on baudelaire) was checking: | 
| 211 | 
   logpfx="prc_emails_" ; sfx=`date +%m%d` | 
   # logpfx="prc_emails_" ; sfx=`date +%m%d` | 
| 212 | 
   logfile="/net/zany/data/ORWELL/export-7/u/jmc/testing/logs/${logpfx}$sfx" | 
   # logfile="/net/zany/data/ORWELL/export-7/u/jmc/testing/logs/${logpfx}$sfx" | 
| 213 | 
 #- update log-file to trigger a new "check_outp": | 
   #- update log-file to trigger a new "check_outp": | 
| 214 | 
   if test -e  $logfile ; then touch $logfile ; fi | 
   # if test -e  $logfile ; then touch $logfile ; fi | 
| 215 | 
 fi | 
   fi | 
| 216 | 
 #echo 'Start processing msg locally' | 
   #echo 'Start processing msg locally' | 
 | 
 #exit | 
  | 
| 217 | 
  | 
  | 
| 218 | 
  | 
 fi | 
| 219 | 
 #---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| | 
 #---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| | 
| 220 | 
  | 
 #exit | 
| 221 | 
  | 
  | 
| 222 | 
 all_msg=`ls -1 $INDIR` | 
 all_msg=`ls -1 $INDIR` | 
| 223 | 
 nb_msg=`echo "$all_msg" | grep -c '^msg\.'` | 
 nb_msg=`echo "$all_msg" | grep -c '^msg\.'` | 
| 228 | 
   echo "Using OUTDIR=\"$OUTDIR\"" | 
   echo "Using OUTDIR=\"$OUTDIR\"" | 
| 229 | 
   echo "Using INDIR=\"$INDIR\"" | 
   echo "Using INDIR=\"$INDIR\"" | 
| 230 | 
   echo -n "Unpacking $nb_msg msg + $nb_tar tar-file ("`date` | 
   echo -n "Unpacking $nb_msg msg + $nb_tar tar-file ("`date` | 
| 231 | 
  | 
   echo -n ", sfx=$sufx" | 
| 232 | 
   if test "x$ADDRERR" != x ; then | 
   if test "x$ADDRERR" != x ; then | 
| 233 | 
      echo -n ", err: $ADDRERR" | 
      echo -n ", err: $ADDRERR" | 
| 234 | 
   fi | 
   fi | 
| 235 | 
   echo ")" | 
   echo ")" | 
| 236 | 
 elif test $nb_files != 0 ; then | 
 elif test $nb_files != 0 ; then | 
| 237 | 
   echo -n "Unpacking $nb_msg msg + $nb_tar tar-file ("`date` | 
   echo -n "Unpacking $nb_msg msg + $nb_tar tar-file ("`date` | 
| 238 | 
  | 
   echo -n ", sfx=$sufx" | 
| 239 | 
   if test "x$ADDRERR" != x ; then | 
   if test "x$ADDRERR" != x ; then | 
| 240 | 
      echo -n ", err: $ADDRERR" | 
      echo -n ", err: $ADDRERR" | 
| 241 | 
   fi | 
   fi | 
| 532 | 
               mail -s 'parse_emails err_4' $ADDRERR < $ERRMSG | 
               mail -s 'parse_emails err_4' $ADDRERR < $ERRMSG | 
| 533 | 
               rm -f $ERRMSG | 
               rm -f $ERRMSG | 
| 534 | 
             fi | 
             fi | 
| 535 | 
  | 
             ( cd $INDIR ; mv -f $grpM ../postponed ) | 
| 536 | 
             continue | 
             continue | 
| 537 | 
           fi | 
           fi | 
| 538 | 
         fi | 
         fi |