So there are two scripts files I'm interested in knowing the process being run and where the data is sent:
load functions and configuration
DIR=`dirname $0`
. $DIR/functions
usage()
{
echo "This is used internally."
echo "$0 Process-ID.mon.day.yr2.starttime.ACD"
exit 1
}
verify_transfer()
{
DATE_STRING=$(date '+%D')
TIME_STRING=$(date '+%H:%M:%S')
awk '
$1 ~ /^530/ {
printf("'$DATE_STRING' - '$TIME_STRING' - FTP Login Incorrect on LAN Conn
ection '$j'\n")
}
$1 ~ /^550/ {
printf("'$DATE_STRING' - '$TIME_STRING' - Access denied to file or directo
ry for LAN connection '$j'\n")
}
$1 ~ /^553/ {
printf("'$DATE_STRING' - '$TIME_STRING' - Cannot '${APPN[$j]}' '$FIXED_FN
AME' for LAN connection '$j'\n")
}
$1 ~ /^226/ {
printf("'$DATE_STRING' - '$TIME_STRING' - Sent '$FIXED_FNAME' to LAN conn
ection '$j'\n")
}
' /tmp/$$.transport.log >> $PKGHOME/${NAME}.log
echo "" >> $PKGHOME/transport.log
date >> $PKGHOME/transport.log
cat /tmp/$$.transport.log >> $PKGHOME/transport.log
rm /tmp/$$.transport.log
}
lan()
{
j=1
while ((j<=LAN_CON))
do
for k in ${ACD[j]}
do
if ((ACDNUM == $k)); then
FIXED_FNAME=$(echo ${NAME[j]} | sed ' s/$mon/'$MON'/g;
s/$day/'$DAY'/g;
s/$yr2/'$YEAR2'/g;
s/$hour/'$HOUR'/g;
s/$min/'$MIN'/g;
s/$intr/'$INTR'/g;
s/$acd/'$k'/g;')
echo "verbose" > /tmp/${NAME}.$$
echo "open ${DEST[j]}" >> /tmp/${NAME}.$$
echo "user ${USER[j]} ${PASS[j]}" >> /tmp/${NAME}.$$
echo "cd \"${DIR[j]}\"" >> /tmp/${NAME}.$$
echo "pwd" >> /tmp/${NAME}.$$
if [ "${APPN[j]}" == "APPEND" ] ; then
echo "append $1 \"$FIXED_FNAME\"" >> /tmp/${NAME}.$$
else
echo "put $1 \"$FIXED_FNAME\"" >> /tmp/${NAME}.$$
fi
echo "close ${DEST[j]}" >> /tmp/${NAME}.$$
echo "quit" >> /tmp/${NAME}.$$
chmod +x /tmp/${NAME}.$$
# added code here to kill hung FTP processes - KPA 11/18/02
childtime=300 # timeout value in seconds for each FTP
# Timer - a child process that will kill this process if their Microsoft
# FTP server hangs the FTP
sh -c "sleep $childtime; echo \`date\` waited too long, killing ftp >> $PKGHOME/
${NAME}.log; kill -9 $$ >/dev/null 2>&1; rm -f /tmp/$PPID*; rm -f /tmp/*$PPID; r
m -f /tmp/$$*; rm -f /tmp/*$$" &
# save the child PID so we can kill it if we FTP normally
childpid=$!
# initiate the FTP script
ftp -n < /tmp/${NAME}.$$ >> /tmp/$$.transport.log
# if we get here, FTP ran - stop the child timer process
kill -9 $childpid >/dev/null 2>&1
rm /tmp/${NAME}.$$
verify_transfer
fi
done
((j+=1))
done
}
ldc()
{
j=1
while ((j<=LDC_CON))
do
for k in ${LOCAL_ACD[j]}
do
if ((ACDNUM == $k)); then
FIXED_FNAME=$(echo ${LOCAL_FNAME[j]} | sed ' s/$mon/'$MON'/g;
s/$day/'$DAY'/g;
s/$yr2/'$YEAR2'/g;
s/$hour/'$HOUR'/g;
s/$min/'$MIN'/g;
s/$intr/'$INTR'/g;
s/$acd/'$k'/g;')
if [ -d "${LOCAL_DIR[j]}" ] ; then
case "${LOCAL_OVR[j]}" in
"YES")
cat $1 > "${LOCAL_DIR[j]}/$FIXED_FNAME"
;;
"NO")
cat $1 >> "${LOCAL_DIR[j]}/$FIXED_FNAME"
;;
esac
echo "$(date '+%D - %H:%M:%S ')- Copied $FIXED_FNAME for LDC connect
ion $j" >> $PKGHOME/${NAME}.log
else
echo "$(date '+%D - %H:%M:%S ')- ERROR Cannot write $FIXED_FNAME to
${LOCAL_DIR[j]} for LDC connection $j" >> $PKGHOME/${NAME}.log
exit 1
fi
fi
done
((j+=1))
done
}
# Start executing script from here
if (($# < 1)) ; then
usage $0
fi
TEMP=$(ls $REPORTDIR/$1*)
if [ -n "$(echo $TEMP | grep "no such")" ] ; then
exit 1
fi
for file in $TEMP
do
ID=$(echo $file | awk 'BEGIN { FS="." } { print $1 }')
MON=$(echo $file | awk 'BEGIN { FS="." } { print $2 }')
DAY=$(echo $file | awk 'BEGIN { FS="." } { print $3 }')
YEAR2=$(echo $file | awk 'BEGIN { FS="." } { print $4 }')
INTR=$(echo $file | awk 'BEGIN { FS="." } { print $5 }')
HOUR=$(echo $file | awk 'BEGIN { FS="." } { $5 = substr($5, 1, 2); print $5 }'
)
MIN=$(echo $file | awk 'BEGIN { FS="." } { $5 = substr($5, 3, 2); print $5 }')
ACDNUM=$(echo $file | awk 'BEGIN { FS="." } { print $6 }')
lan $file
ldc $file
rm $file
sleep 5
done
cleanup 0