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 |