Mt Xia: Technical Consulting Group
Business Continuity / Disaster Recovery / High Availability Data Center Automation / Audit Response / Audit Compliance
#!/bin/ksh ############################################################# # Program: eStorLink.sh # # Description: Unix-to-Unix connection program. # This program provides end-to-end communication # functions with confirmations # # Author: Dana French (dfrench@aignetplex.com) # Applied Intelligence Group # (405) 936-2342 # Copyright 1999 # # Date: 05/24/99 # ############################################################# # Modifications: # # 05/24/99 Original code Version: 1.0 ############################################################# rcommand() { echo "${1}" | tee -a "${UU_OUTPUT_FILE}" } ############################################################# lcommand() { rcommand "echo \"${1}\" >> /tmp/eStorLink\${$}.tmp" } ############################################################# lcomment() { rcommand "echo \"# \${TIMESTAMP}|\${UU_LOCAL_UUNAME}|\${UU_LOCAL_DIR}/\${UU_LOCAL_FNAME}|\${UU_REMOTE_UUNAME}|\${UU_REMOTE_DIR}/${UU_REMOTE_FNAME}|\${UU_NOTIFY_USER}|\${UU_OVERWRITE}|\${UU_SENDNOW}|\${UU_CURRENT_UUNAME}|${1}\" | tee -a \${UU_LOGFILE} >> /tmp/eStorLink\${$}.tmp" } ############################################################# rcomment() { rcommand "echo \"# \${TIMESTAMP}|\${UU_LOCAL_UUNAME}|\${UU_LOCAL_DIR}/\${UU_LOCAL_FNAME}|\${UU_REMOTE_UUNAME}|\${UU_REMOTE_DIR}/${UU_REMOTE_FNAME}|\${UU_NOTIFY_USER}|\${UU_OVERWRITE}|\${UU_SENDNOW}|\${UU_CURRENT_UUNAME}|${1}\" >> \${UU_LOGFILE}" } ############################################################# llogfile() { lcommand "echo \\\"# \\\${TIMESTAMP}|\\\${UU_REMOTE_UUNAME}|\\\${UU_REMOTE_DIR}/\\\${UU_REMOTE_FNAME}|\\\${UU_LOCAL_UUNAME}|\\\${UU_LOCAL_DIR}/\\\${UU_LOCAL_FNAME}|\\\${UU_NOTIFY_USER}|\\\${UU_OVERWRITE}|\\\${UU_SENDNOW}|\\\${UU_CURRENT_UUNAME}|${1}\\\" >> \\\${UU_LOGFILE}" } ################################################################ usage() { cat << _END_ Usage: estorlink.sh -l localfile -r remotefile ( -g host | -p host ) [-o] [-a transmit|confirm|hold|receive] [-f file|print|mail|news] [-b ascii|binary] [-c comment] [-t now|##:##|date/time] Options are: -l localfile : Full path name of local file -r remotefile : Full path name of remote file -m email : Email address of person to notify upon completion -g A:B:C : List of hosts from which to "get" a file -p A:B:C : List of host on which to "put" a file -a action : Action of this command. Choices are: transmit hold confirm receive -f function : Function of this command. Choices are: file print mail news -b type : Type of this command. Choices are: ascii binary -o : If destination file exists, overwrite it. -t : Send now ( default is spool and wait for cron ) -h : Print this info text Version 1.0: May 25, 1999 _END_ exit 1 } ################################################################ TIMESTAMP=`date +"%Y%m%d%H%M%S"` DEV_NULL=/dev/null UU_PROGRAMID="pgm2035" # (program ID number) UU_OUTPUT_TYPE="${UU_OUTPUT_TYPE:-log}" # (Type of output to display to user) UU_ACTION="${UU_ACTION:-transmit}" # (Action to perform on this file at the origination site) UU_FUNCTION="${UU_FUNCTION:-file}" # (Function of the file to be transfered) UU_TYPE="${UU_TYPE:-ascii}" # (type of file transfer mechanism to use with this file) UU_SENDNOW="0" # (0=do-not-send-now 1=send-now) UU_LOCAL_UUNAME="`uname -n`" UU_LOCAL_UUNAME="${UU_LOCAL_UUNAME%%.*}" UU_CURRENT_UUNAME="`uname -n`" UU_CURRENT_UUNAME="${UU_CURRENT_UUNAME%%.*}" UU_SPOOL_DIR="${UU_SPOOL_DIR:-/var/spool/uucppublic}" # (spool Directory of files to be transfered using UU) UU_LOGFILE="${UU_LOGFILE:-${UU_SPOOL_DIR}/.eStorLinkLog}" # (Log file) UU_DATABASE_DIR="${UU_DATABASE_DIR:-${UU_SPOOL_DIR}/.Database}" # (Directory location of eStorLink data files) UU_OVERWRITE="0" # (0=donot overwrite existing file 1=overwrite existing file) UU_REMOTE_EXISTS="0" # (0=destination file does not exist 1=Destination file exists) UU_NOTIFY_USER="webmaster@mailhost" UU_NOTIFY_USER="" # UU_PUT_PATH1="${UU_PUT_PATH1:-aigaix01}" # UU_REMOTE_ALT="HQ2" # UU_PUT_PATH2="STR004::STR004" UU_LOCAL_FNAME="" # (local name of file before transfer) UU_LOCAL_DIR="" # (local directory location of file before transfer) UU_REMOTE_FNAME="" # (remote name of file after transfer) UU_REMOTE_DIR="" # (remote directory location of file after transfer) UU_PUT_PATH1="" # (List of remote destination hosts) UU_GET_PATH1="" # (List of remote source hosts) ################################################################ while getopts othl:r:m:g:p:a:f:b:c: i $* do case $i in o ) UU_OVERWRITE="1";; l ) UU_LOCAL_FNAME=`basename ${OPTARG}`; UU_LOCAL_DIR=`dirname ${OPTARG}`;; r ) UU_REMOTE_FNAME=`basename ${OPTARG}`; UU_REMOTE_DIR=`dirname ${OPTARG}`;; m ) UU_NOTIFY_USER="${OPTARG}";; g ) UU_GET_PATH1="${OPTARG}";; p ) UU_PUT_PATH1="${OPTARG}";; a ) UU_ACTION="${OPTARG}";; f ) UU_FUNCTION="${OPTARG}";; b ) UU_TYPE="${OPTARG}";; c ) UU_COMMENT="${OPTARG}";; t ) UU_SENDNOW="1";; * ) usage ;; esac done ################################################################ case "_" in "_${UU_LOCAL_FNAME}" ) echo "ERROR: Local File Name not specified";exit;; "_${UU_LOCAL_DIR}" ) echo "ERROR: Local Directory not specified";exit;; "_${UU_REMOTE_FNAME}" ) echo "ERROR: Remote File Name not specified";exit;; "_${UU_REMOTE_DIR}" ) echo "ERROR: Remote Directory not specified";exit;; esac if [ "_${UU_GET_PATH1}" = "_" -a "_${UU_PUT_PATH1}" = "_" ] then echo "ERROR: Host list not specified" exit fi if [ "_${UU_GET_PATH1}" != "_" -a "_${UU_PUT_PATH1}" != "_" ] then echo "ERROR: Cannot specify both GET and PUT Host list" exit fi if [ "_${UU_PUT_PATH1}" != "_" -a ! -d "${UU_LOCAL_DIR}" ] then echo "ERROR: Local Directory does not exist" exit fi if [ "_${UU_PUT_PATH1}" != "_" -a ! -f "${UU_LOCAL_DIR}/${UU_LOCAL_FNAME}" ] then echo "ERROR: Local file does not exist" exit fi UU_OPTIONS="-a ${UU_NOTIFY_USER}" UU_OPTIONS="" [ ${UU_SENDNOW} -eq 0 ] && UU_OPTIONS="${UU_OPTIONS} -r" case "_${UU_OUTPUT_TYPE}" in "_" ) exit;; "_ascii" ) exit;; "_none" ) exit;; "_html" ) exit;; "_log" ) ;; esac if [ "_${UU_PUT_PATH1}" != "_" ] then if UU_LOCAL_CHKSUM=`sum < "${UU_LOCAL_DIR}/${UU_LOCAL_FNAME}"` then UU_LOCAL_CHKSUM="${UU_LOCAL_CHKSUM%% *}" UU_OUTPUT_FILE="${UU_SPOOL_DIR}/${TIMESTAMP}.${UU_CURRENT_UUNAME}.${UU_LOCAL_FNAME}.T" echo "#!/bin/ksh" > "${UU_OUTPUT_FILE}" rcommand "################################################################" rcommand "TIMESTAMP=\"${TIMESTAMP}\"" rcommand "UU_PROGRAMID=\"${UU_PROGRAMID}\"" rcommand "UU_OUTPUT_TYPE=\"${UU_OUTPUT_TYPE}\"" rcommand "UU_ACTION=\"${UU_ACTION}\"" rcommand "UU_FUNCTION=\"${UU_FUNCTION}\"" rcommand "UU_TYPE=\"${UU_TYPE}\"" rcommand "UU_SENDNOW=\"${UU_SENDNOW}\"" rcommand "UU_PUT_PATH1=\"${UU_PUT_PATH1}\"" rcommand "UU_GET_PATH1=\"${UU_GET_PATH1}\"" rcommand "UU_REMOTE_ALT=\"${UU_REMOTE_ALT}\"" rcommand "UU_PUT_PATH2=\"${UU_PUT_PATH2}\"" rcommand "UU_LOCAL_UUNAME=\"${UU_LOCAL_UUNAME}\"" rcommand "UU_CURRENT_UUNAME=\"\`uname -n\`\"" rcommand "UU_CURRENT_UUNAME=\"\${UU_CURRENT_UUNAME%%.*}\"" rcommand "UU_SPOOL_DIR=\"${UU_SPOOL_DIR}\"" rcommand "UU_LOGFILE=\"${UU_LOGFILE}\"" rcommand "UU_DATABASE_DIR=\"${UU_DATABASE_DIR}\"" rcommand "UU_LOCAL_DIR=\"${UU_LOCAL_DIR}\"" rcommand "UU_REMOTE_DIR=\"${UU_REMOTE_DIR}\"" rcommand "UU_LOCAL_FNAME=\"${UU_LOCAL_FNAME}\"" rcommand "UU_REMOTE_FNAME=\"${UU_REMOTE_FNAME}\"" rcommand "UU_LOCAL_CHKSUM=\"${UU_LOCAL_CHKSUM}\"" rcommand "UU_OVERWRITE=\"${UU_OVERWRITE}\"" rcommand "UU_OPTIONS=\"${UU_OPTIONS}\"" rcommand "case \"_\${UU_OUTPUT_TYPE}\" in" rcommand " \"_\" ) exit;;" rcommand " \"_ascii\" ) exit;;" rcommand " \"_none\" ) exit;;" rcommand " \"_html\" ) exit;;" rcommand " \"_log\" ) ;;" rcommand "esac" rcommand "for UU_REMOTE_UUNAME in \`echo \"\${UU_PUT_PATH1}\" | sed -e \"s/:/ /g\"\`" rcommand "do" rcommand " if [[ \"_\${UU_CURRENT_UUNAME}\" != \"_\${UU_REMOTE_UUNAME}\" ]]" rcommand " then" rcomment "Sending Send Request" rcommand " uux \${UU_OPTIONS} \"\${UU_REMOTE_UUNAME}!/bin/ksh \${UU_LOCAL_UUNAME}!\${UU_SPOOL_DIR}/\${TIMESTAMP}.\${UU_CURRENT_UUNAME}.\${UU_LOCAL_FNAME}.T > !\${UU_SPOOL_DIR}/\${TIMESTAMP}.\${UU_REMOTE_UUNAME}.\${UU_LOCAL_FNAME}.S\" 2>&1" rcommand " else" rcommand " touch \${UU_LOGFILE}" rcommand " echo \"#!/bin/ksh\" > /tmp/eStorLink\${$}.tmp" lcommand "################################################################" lcommand "touch \${UU_LOGFILE}" lcomment "Begin \${UU_ACTION}" lcommand "TIMESTAMP=\\\"\${TIMESTAMP}\\\"" lcommand "UU_PROGRAMID=\\\"\${UU_PROGRAMID}\\\"" lcommand "UU_OUTPUT_TYPE=\\\"\${UU_OUTPUT_TYPE}\\\"" lcommand "UU_ACTION=\\\"\${UU_ACTION}\\\"" lcommand "UU_FUNCTION=\\\"\${UU_FUNCTION}\\\"" lcommand "UU_TYPE=\\\"\${UU_TYPE}\\\"" lcommand "UU_SENDNOW=\\\"\${UU_SENDNOW}\\\"" lcommand "UU_PUT_PATH1=\\\"\${UU_PUT_PATH1}\\\"" lcommand "UU_GET_PATH1=\\\"\${UU_GET_PATH1}\\\"" lcommand "UU_REMOTE_ALT=\\\"\${UU_REMOTE_ALT}\\\"" lcommand "UU_PUT_PATH2=\\\"\${UU_PUT_PATH2}\\\"" lcommand "UU_LOCAL_UUNAME=\\\"\${UU_LOCAL_UUNAME}\\\"" lcommand "UU_CURRENT_UUNAME=\\\"\`uname -n\`\\\"" lcommand "UU_CURRENT_UUNAME=\\\"\${UU_CURRENT_UUNAME%%.*}\\\"" lcommand "UU_SPOOL_DIR=\\\"\${UU_SPOOL_DIR}\\\"" lcommand "UU_LOGFILE=\\\"\${UU_LOGFILE}\\\"" lcommand "UU_DATABASE_DIR=\\\"\${UU_DATABASE_DIR}\\\"" lcommand "UU_LOCAL_DIR=\\\"\${UU_LOCAL_DIR}\\\"" lcommand "UU_REMOTE_DIR=\\\"\${UU_REMOTE_DIR}\\\"" lcommand "UU_LOCAL_FNAME=\\\"\${UU_LOCAL_FNAME}\\\"" lcommand "UU_REMOTE_FNAME=\\\"\${UU_REMOTE_FNAME}\\\"" lcommand "UU_LOCAL_CHKSUM=\\\"\${UU_LOCAL_CHKSUM}\\\"" lcommand "UU_OVERWRITE=\\\"\${UU_OVERWRITE}\\\"" lcommand "UU_OPTIONS=\\\"\${UU_OPTIONS}\\\"" lcommand "UU_REMOTE_UUNAME=\\\"\${UU_REMOTE_UUNAME}\\\"" rcommand " if [ -f \"\${UU_REMOTE_DIR}/\${TIMESTAMP}.\${UU_LOCAL_UUNAME}.\${UU_REMOTE_FNAME}\" ]" rcommand " then" lcomment "TIMESTAMP File already exists" rcommand " else" lcomment "TIMESTAMP File does not exist" rcommand " fi" rcommand " if [ ! -f \"\${UU_REMOTE_DIR}/\${TIMESTAMP}.\${UU_LOCAL_UUNAME}.\${UU_REMOTE_FNAME}\" -o \"_${UU_OVERWRITE}\" = \"_1\" ]" rcommand " then" rcommand " if [ \"_${UU_OVERWRITE}\" = \"_1\" ]" rcommand " then" lcomment "OK to overwrite TIMESTAMP file if it exists" rcommand " fi" lcomment "Command Line = \${0} \${*}" rcommand " if uudecode < \${0}" rcommand " then" lcomment "uudecode was successful" rcommand " if [ -f \"\${UU_REMOTE_DIR}/\${UU_REMOTE_FNAME}\" ]" rcommand " then" rcommand " UU_REMOTE_EXISTS=\"1\"" lcomment "Remote File already exists" lcommand "UU_REMOTE_EXISTS=\\\"1\\\"" rcommand " else" rcommand " UU_REMOTE_EXISTS=\"0\"" lcomment "Remote File does not exist" lcommand "UU_REMOTE_EXISTS=\\\"0\\\"" rcommand " fi" rcommand " if [ \${UU_OVERWRITE} -eq 1 -o \${UU_REMOTE_EXISTS} -eq 0 ]" rcommand " then" rcommand " if [ \${UU_OVERWRITE} -eq 1 ]" rcommand " then" lcomment "Overwriting remote file" rcommand " fi" rcommand " if cp \"\${UU_REMOTE_DIR}/\${TIMESTAMP}.\${UU_LOCAL_UUNAME}.\${UU_REMOTE_FNAME}\" \"\${UU_REMOTE_DIR}/\${UU_REMOTE_FNAME}\"" rcommand " then" lcomment "Successfully copied to remote file name" rcommand " else" lcomment "ERROR: Unable to copy to remote file name" rcommand " fi" rcommand " else" lcomment "ERROR: Remote file already exists or flag not set to OVERWRITE" rcommand " fi" rcommand " else" lcomment "ERROR: uudecode failed" rcommand " fi" rcommand " else" lcomment "ERROR: TIMESTAMP File already exists" lcomment "ERROR: UU_OVERWRITE=\${UU_OVERWRITE}" rcommand " fi" rcommand " if [ -f \${UU_REMOTE_DIR}/\${UU_REMOTE_FNAME} ]" rcommand " then" lcomment "Comparing accuracy of transmitted file" rcommand " UU_REMOTE_CHKSUM=\`sum < \"\${UU_REMOTE_DIR}/\${UU_REMOTE_FNAME}\"\`" rcommand " UU_REMOTE_CHKSUM=\"\${UU_REMOTE_CHKSUM%% *}\"" lcommand "UU_REMOTE_CHKSUM=\\\"\${UU_REMOTE_CHKSUM}\\\"" lcomment "UU_LOCAL_CHKSUM=\${UU_LOCAL_CHKSUM}" lcomment "UU_REMOTE_CHKSUM=\${UU_REMOTE_CHKSUM}" rcommand " if [ \"_\${UU_LOCAL_CHKSUM}\" = \"_\${UU_REMOTE_CHKSUM}\" ]" rcommand " then" lcomment "Check sums match" rcommand " else" lcomment "ERROR: Checksums do not match" rcommand " fi" rcommand " else" lcomment "ERROR: Remote file was not created" rcommand " fi" lcomment "End \${UU_ACTION}" lcommand "cat eStorLink\${$}.tmp > \${UU_SPOOL_DIR}/\${TIMESTAMP}.\${UU_CURRENT_UUNAME}.\${UU_LOCAL_FNAME}.O" lcommand "cat \${UU_SPOOL_DIR}/\${TIMESTAMP}.\${UU_CURRENT_UUNAME}.\${UU_LOCAL_FNAME}.O | mail -s \\\"UU File Send Confirm from \${UU_CURRENT_UUNAME}\\\" dfrench@aignetplex.com" lcommand "grep -i \\\"^# \\\" \${UU_SPOOL_DIR}/\${TIMESTAMP}.\${UU_CURRENT_UUNAME}.\${UU_LOCAL_FNAME}.O >> \${UU_LOGFILE}" rcommand " uux \"\${UU_LOCAL_UUNAME}!/bin/ksh !/tmp/eStorLink\${$}.tmp\"" rcommand " fi" rcommand " done" rcommand "exit" rcommand "################################################################" if uuencode "${UU_REMOTE_DIR}/${TIMESTAMP}.${UU_LOCAL_UUNAME}.${UU_REMOTE_FNAME}" < "${UU_LOCAL_DIR}/${UU_LOCAL_FNAME}" >> "${UU_SPOOL_DIR}/${TIMESTAMP}.${UU_CURRENT_UUNAME}.${UU_LOCAL_FNAME}.T" then echo "Uuencoded \"${UU_LOCAL_DIR}/${UU_LOCAL_FNAME}\" successfully" echo "Executing ${UU_SPOOL_DIR}/${TIMESTAMP}.${UU_CURRENT_UUNAME}.${UU_LOCAL_FNAME}.T" chmod 777 "${UU_SPOOL_DIR}/${TIMESTAMP}.${UU_CURRENT_UUNAME}.${UU_LOCAL_FNAME}.T" echo "ksh \"${UU_SPOOL_DIR}/${TIMESTAMP}.${UU_CURRENT_UUNAME}.${UU_LOCAL_FNAME}.T\"" echo "# ${TIMESTAMP}|${UU_REMOTE_UUNAME}|${UU_REMOTE_DIR}/${UU_REMOTE_FNAME}|${UU_LOCAL_UUNAME}|${UU_LOCAL_DIR}/${UU_LOCAL_FNAME}|${UU_NOTIFY_USER}|${UU_OVERWRITE}|${UU_SENDNOW}|${UU_CURRENT_UUNAME}|Executing Send Request" >> ${UU_LOGFILE} ksh "${UU_SPOOL_DIR}/${TIMESTAMP}.${UU_CURRENT_UUNAME}.${UU_LOCAL_FNAME}.T" else echo "ERROR Uuencode of \"${UU_LOCAL_DIR}/${UU_LOCAL_FNAME}\" failed" exit fi fi fi if [ "_${UU_GET_PATH1}" != "_" ] then UU_LOCAL_UUNAME="`uname -n`" UU_LOCAL_UUNAME="${UU_LOCAL_UUNAME%%.*}" for UU_REMOTE_UUNAME in `echo ${UU_GET_PATH1} | sed -e "s/:/ /g"` do UU_OUTPUT_FILE="${UU_SPOOL_DIR}/${TIMESTAMP}.${UU_CURRENT_UUNAME}.${UU_REMOTE_FNAME}.T" echo "#!/bin/ksh" > "${UU_OUTPUT_FILE}" rcommand "################################################################" rcommand "TIMESTAMP=\"${TIMESTAMP}\"" rcommand "UU_PROGRAMID=\"${UU_PROGRAMID}\"" rcommand "UU_OUTPUT_TYPE=\"${UU_OUTPUT_TYPE}\"" rcommand "UU_ACTION=\"${UU_ACTION}\"" rcommand "UU_FUNCTION=\"${UU_FUNCTION}\"" rcommand "UU_TYPE=\"${UU_TYPE}\"" rcommand "UU_SENDNOW=\"${UU_SENDNOW}\"" rcommand "UU_PUT_PATH1=\"${UU_LOCAL_UUNAME}\"" rcommand "UU_GET_PATH1=\"${UU_REMOTE_UUNAME}\"" rcommand "UU_LOCAL_ALT=\"${UU_LOCAL_ALT}\"" rcommand "UU_PUT_PATH2=\"${UU_PUT_PATH2}\"" rcommand "UU_REMOTE_UUNAME=\"${UU_REMOTE_UUNAME}\"" rcommand "UU_LOCAL_UUNAME=\"${UU_LOCAL_UUNAME}\"" rcommand "UU_CURRENT_UUNAME=\"\`uname -n\`\"" rcommand "UU_CURRENT_UUNAME=\"\${UU_CURRENT_UUNAME%%.*}\"" rcommand "UU_SPOOL_DIR=\"${UU_SPOOL_DIR}\"" rcommand "UU_LOGFILE=\"${UU_LOGFILE}\"" rcommand "UU_DATABASE_DIR=\"${UU_DATABASE_DIR}\"" rcommand "UU_REMOTE_DIR=\"${UU_REMOTE_DIR}\"" rcommand "UU_LOCAL_DIR=\"${UU_LOCAL_DIR}\"" rcommand "UU_REMOTE_FNAME=\"${UU_REMOTE_FNAME}\"" rcommand "UU_LOCAL_FNAME=\"${UU_LOCAL_FNAME}\"" rcommand "UU_REMOTE_CHKSUM=\"${UU_REMOTE_CHKSUM}\"" rcommand "UU_OVERWRITE=\"${UU_OVERWRITE}\"" rcommand "UU_OPTIONS=\"${UU_OPTIONS}\"" rcommand "if [ \"_\${UU_CURRENT_UUNAME}\" = \"_\${UU_REMOTE_UUNAME}\" ]" rcommand "then" rcommand " touch \${UU_LOGFILE}" rcommand " echo \"#!/bin/ksh\" > /tmp/eStorLink\${$}.tmp" lcommand "################################################################" lcommand "touch \${UU_LOGFILE}" lcomment "Begin Retrieve Request" lcommand "TIMESTAMP=\\\"\${TIMESTAMP}\\\"" lcommand "UU_PROGRAMID=\\\"\${UU_PROGRAMID}\\\"" lcommand "UU_OUTPUT_TYPE=\\\"\${UU_OUTPUT_TYPE}\\\"" lcommand "UU_ACTION=\\\"\${UU_ACTION}\\\"" lcommand "UU_FUNCTION=\\\"\${UU_FUNCTION}\\\"" lcommand "UU_TYPE=\\\"\${UU_TYPE}\\\"" lcommand "UU_SENDNOW=\\\"\${UU_SENDNOW}\\\"" lcommand "UU_PUT_PATH1=\\\"\${UU_LOCAL_UUNAME}\\\"" lcommand "UU_GET_PATH1=\\\"\${UU_REMOTE_UUNAME}\\\"" lcommand "UU_LOCAL_ALT=\\\"\${UU_LOCAL_ALT}\\\"" lcommand "UU_PUT_PATH2=\\\"\${UU_PUT_PATH2}\\\"" lcommand "UU_REMOTE_UUNAME=\\\"\${UU_REMOTE_UUNAME}\\\"" lcommand "UU_LOCAL_UUNAME=\\\"\${UU_LOCAL_UUNAME}\\\"" lcommand "UU_CURRENT_UUNAME=\\\"\\\`uname -n\\\`\\\"" lcommand "UU_CURRENT_UUNAME=\\\"\\\${UU_CURRENT_UUNAME%%.*}\\\"" lcommand "UU_SPOOL_DIR=\\\"\${UU_SPOOL_DIR}\\\"" lcommand "UU_LOGFILE=\\\"\${UU_LOGFILE}\\\"" lcommand "UU_DATABASE_DIR=\\\"\${UU_DATABASE_DIR}\\\"" lcommand "UU_REMOTE_DIR=\\\"\${UU_REMOTE_DIR}\\\"" lcommand "UU_LOCAL_DIR=\\\"\${UU_LOCAL_DIR}\\\"" lcommand "UU_REMOTE_FNAME=\\\"\${UU_REMOTE_FNAME}\\\"" lcommand "UU_LOCAL_FNAME=\\\"\${UU_LOCAL_FNAME}\\\"" lcommand "UU_OVERWRITE=\\\"\${UU_OVERWRITE}\\\"" lcommand "grep -i \\\"^# \\\" \\\${0} >> \${UU_LOGFILE}" llogfile "Processing Retrieve Request" rcommand " if [ -f \"\${UU_REMOTE_DIR}/\${UU_REMOTE_FNAME}\" ]" rcommand " then" lcomment "Remote File exists" rcommand " UU_REMOTE_CHKSUM=\`sum < \"\${UU_REMOTE_DIR}/\${UU_REMOTE_FNAME}\"\`" rcommand " UU_REMOTE_CHKSUM=\"\${UU_REMOTE_CHKSUM%% *}\"" lcomment "UU_REMOTE_CHKSUM=\${UU_REMOTE_CHKSUM}" rcommand " else" rcommand " UU_REMOTE_CHKSUM=\"0\"" lcomment "Remote File does not exist" rcommand " fi" lcommand "UU_REMOTE_CHKSUM=\\\"\${UU_REMOTE_CHKSUM}\\\"" lcommand "UU_OPTIONS=\\\"\${UU_OPTIONS}\\\"" lcommand "UU_LOCAL_UUNAME=\\\"\${UU_LOCAL_UUNAME}\\\"" lcommand "if uudecode < \\\${0}" lcommand "then" llogfile "uudecode was successful" lcommand "else" llogfile "ERROR: Uudecode Failed" lcommand "fi" lcommand "UU_LOCAL_CHKSUM=\\\`sum < \\\"\\\${UU_LOCAL_DIR}/\\\${TIMESTAMP}.\\\${UU_REMOTE_UUNAME}.\\\${UU_LOCAL_FNAME}\\\"\\\`" lcommand "UU_LOCAL_CHKSUM=\\\"\\\${UU_LOCAL_CHKSUM%% *}\\\"" llogfile "UU_LOCAL_CHKSUM=\\\${UU_LOCAL_CHKSUM}" lcommand "if [ \\\"_\\\${UU_REMOTE_CHKSUM}\\\" = \\\"_\\\${UU_LOCAL_CHKSUM}\\\" ]" lcommand "then" llogfile "Check Sums match" lcommand "else" llogfile "ERROR: Check Sums do not match" lcommand "fi" lcommand "if [ -f \\\${UU_LOCAL_DIR}/\\\${UU_LOCAL_FNAME} -a \\\${UU_OVERWRITE} -eq 0 ]" lcommand "then" llogfile "Local file already exists" lcommand "else" lcommand " if [ -f \\\${UU_LOCAL_DIR}/\\\${UU_LOCAL_FNAME} -a \\\${UU_OVERWRITE} -eq 1 ]" lcommand " then" llogfile "Overwriting Local File" lcommand " fi" lcommand " if [ -f \\\${UU_LOCAL_DIR}/\\\${TIMESTAMP}.\\\${UU_REMOTE_UUNAME}.\\\${UU_LOCAL_FNAME} ]" lcommand " then" llogfile "TIMESTAMP file exists" lcommand " else" llogfile "ERROR: TIMESTAMP file does not exist" lcommand " fi" lcommand " if cp \\\${UU_LOCAL_DIR}/\\\${TIMESTAMP}.\\\${UU_REMOTE_UUNAME}.\\\${UU_LOCAL_FNAME} \\\${UU_LOCAL_DIR}/\\\${UU_LOCAL_FNAME}" lcommand " then" llogfile "Successfully copied TIMESTAMP file to local file" lcommand " else" llogfile "ERROR: Unable to copy TIMESTAMP file to local file" lcommand " fi" lcommand "fi" lcommand "cat \\\${0} > \\\${UU_SPOOL_DIR}/\\\${TIMESTAMP}.\\\${UU_REMOTE_UUNAME}.\\\${UU_LOCAL_FNAME}.O" lcommand "cat \\\${UU_SPOOL_DIR}/\\\${TIMESTAMP}.\\\${UU_REMOTE_UUNAME}.\\\${UU_LOCAL_FNAME}.O | mail -s \\\"UU File Retrieve Confirm from \${UU_REMOTE_UUNAME}\\\" dfrench@aignetplex.com" rcommand " uux \"\${UU_LOCAL_UUNAME}!/bin/ksh !/tmp/eStorLink\${$}.tmp > \${UU_LOCAL_UUNAME}!\${UU_SPOOL_DIR}/\${TIMESTAMP}.\${UU_LOCAL_UUNAME}.\${UU_REMOTE_FNAME}.S\" 2>&1" lcommand "exit" lcommand "################################################################" rcommand " if uuencode \"\${UU_LOCAL_DIR}/\${TIMESTAMP}.\${UU_REMOTE_UUNAME}.\${UU_LOCAL_FNAME}\" < \"\${UU_REMOTE_DIR}/\${UU_REMOTE_FNAME}\" >> /tmp/eStorLink\${$}.tmp" rcommand " then" lcomment "Uuencode was successful" rcommand " chmod 777 /tmp/eStorLink\${$}.tmp" rcommand " fi" lcomment "End Retrieve Processing" rcommand "else" rcommand " uux \${UU_OPTIONS} \"\${UU_REMOTE_UUNAME}!/bin/ksh !\${UU_SPOOL_DIR}/\${TIMESTAMP}.\${UU_CURRENT_UUNAME}.\${UU_REMOTE_FNAME}.T\"" rcommand " echo \"# \${TIMESTAMP}|\${UU_REMOTE_UUNAME}|\${UU_REMOTE_DIR}/\${UU_REMOTE_FNAME}|\${UU_LOCAL_UUNAME}|\${UU_LOCAL_DIR}/${UU_LOCAL_FNAME}|\${UU_NOTIFY_USER}|\${UU_OVERWRITE}|\${UU_SENDNOW}|\${UU_CURRENT_UUNAME}|Sending Retrieve Request\" >> \${UU_LOGFILE}" rcommand "fi" echo "# ${TIMESTAMP}|${UU_REMOTE_UUNAME}|${UU_REMOTE_DIR}/${UU_REMOTE_FNAME}|${UU_LOCAL_UUNAME}|${UU_LOCAL_DIR}/${UU_LOCAL_FNAME}|${UU_NOTIFY_USER}|${UU_OVERWRITE}|${UU_SENDNOW}|${UU_CURRENT_UUNAME}|Executing Retrieve Request" >> ${UU_LOGFILE} ksh -x "${UU_SPOOL_DIR}/${TIMESTAMP}.${UU_CURRENT_UUNAME}.${UU_REMOTE_FNAME}.T" done fi