#!/bin/ksh # date_ps_ef.ksh # Report on world.php or filename as argument 1 mimetype="Content-Type: text/html\\n" emailfrom="rmetcalfe@rjmprogramming.com.au" emailto="rmetcalfe15@gmail.com" emailcc="rmetcalfe@rjmprogramming.com.au" emailbcc="" subjmiddle="Date ps-ef world.php Report" lastdate="`date`" subjis="First ${subjmiddle} at ${lastdate}" lastcur="" filen="" flist="" prefix="$0" ppid="" plain="plain" hprefix="" hsuffix="" # Local time the Korn Shell will be hosted at preTZ="Australia/Perth" #preTZ="Australia/Sydney" thispid="`echo $$`" postiftwoquit="`ps -ef | grep \" ${thispid} \" | grep -c ':00:00:00:00'`" iftwoquit="1" attachrest="\\n

First ${subjmiddle} at ${lastdate}

`cat date_ps_ef_first.txt | sed '/^/s//<\/tr>/g'`
UIDPIDPPIDCSTIMETTYTIMECMD
/g' | sed 's/ \{1,\}/<\/td>/g' | awk '{ t=0; while (getline \$0) { if (t == 0) { print \"
" if [ ! -z "$1" ]; then while [ ! -z "$1" ]; do if [ "`echo \"${1}\" | tr -d '@'`" != "`echo \"${1}\"" ]; then if [ "`echo \"${emailto}\" | tr -d ' '`" == "`echo \"${emailto}\"" ]; then emailto="${1} " elif [ "`echo \"${emailcc}\" | tr -d ' '`" == "`echo \"${emailcc}\"" ]; then emailcc="${1} " else emailbcc="BCC: ${1}\\n" fi prefix="${prefix} ${1}" elif [ -f "${1}" ]; then if [ ! -z "${mimetype}" ]; then filen="${1}" mimetype="" shortf="" basechars="`base64 ${filen} | tr -d \"\\n\"`" i=0 flast="`echo ${1} | tr '/' ' ' | sed '/\\\\/s// /g'`" for filebits in ${flast}; do shortf=${filebits} ((i=i+1)) done subjmiddle="$shortf" if [ "`echo \"${subjis}\" | sed '/^First /s///g'`" != "`echo \"${subjis}\"`" ]; then subjis="First ${subjmiddle} at ${lastdate}" fi attachrest="Mime-Version: 1.0\\nContent-Type: multipart/mixed; boundary=\"19032019ABCDE\"\\n\\n--19032019ABCDE\\nContent-Type: text/${plain}; charset=\"iso-8859-1\"\\nContent-Transfer-Encoding: 8bit\\n\\n${hprefix}${subjis}${hsuffix}\\n\\n--19032019ABCDE\\nContent-Type: application/octet-stream; name=\"${shortf}\";\\nContent-Transfer-Encoding: base64\\nContent-Disposition: attachment;filename=\"${shortf}\"\\n\\n${basechars}\\n--19032019ABCDE--" elif [ -z "${flist}" ]; then ppid="$$" prefix="${prefix} ${ppid}" flist="${1}" else flist="${flist} ${1}" fi elif [ "`echo \"${1}\" | tr '[A-Z]' '[a-z]' | sed '/^http/s///g'`" != "`echo \"${1}\" | tr '[A-Z]' '[a-z]'" ]; then if [ ! -z "${mimetype}" ]; then lastcur=" " filen="`echo \"${1}\" | sed '/^https:/s//http:/g' | sed '/^HTTPS:/s//http:/g' | sed '/^Https:/s//http:/g'" cfilen="`curl ${filen}`" #cfilen="`php ./inout.php ${filen}`" filen="${1}" mimetype="" shortf="" basechars="`echo -n \"${cfilen}\" | base64 | tr -d \"\\n\"`" #basechars="${cfilen}" i=0 flast="`echo ${1} | tr '/' ' ' | sed '/\\\\/s// /g'`" for filebits in ${flast}; do shortf=${filebits} ((i=i+1)) done subjmiddle="$shortf" if [ "`echo \"${subjis}\" | sed '/^First /s///g'`" != "`echo \"${subjis}\"`" ]; then subjis="First ${1} at ${lastdate}" fi attachrest="Mime-Version: 1.0\\nContent-Type: multipart/mixed; boundary=\"19032019ABCDE\"\\n\\n--19032019ABCDE\\nContent-Type: text/${plain}; charset=\"iso-8859-1\"\\nContent-Transfer-Encoding: 8bit\\n\\n${hprefix}${subjis}${hsuffix}\\n\\n--19032019ABCDE\\nContent-Type: application/octet-stream; name=\"${shortf}\";\\nContent-Transfer-Encoding: base64\\nContent-Disposition: attachment;filename=\"${shortf}\"\\n\\n${basechars}\\n--19032019ABCDE--" elif [ -z "${flist}" ]; then ppid="$$" prefix="${prefix} ${ppid}" flist="${1}" else flist="${flist} ${1}" fi elif [ "`echo \"${1}\" | tr -d ' ' | tr -d '^'`" != "`echo \"${1}\"" ]; then prefix="${prefix} `echo \"${1}\" | tr ' ' '^'`" subjis="`echo \"${1}\" | tr '^' ' ' | sed \"/ at date/s// at ${lastdate}/g\" | sed \"/\[date\]/s//${lastdate}/g\"`" plain="html" hprefix="

" hsuffix="

" attachrest="Mime-Version: 1.0\\nContent-Type: multipart/mixed; boundary=\"19032019ABCDE\"\\n\\n--19032019ABCDE\\nContent-Type: text/${plain}; charset=\"iso-8859-1\"\\nContent-Transfer-Encoding: 8bit\\n\\n${hprefix}${subjis}${hsuffix}\\n\\n--19032019ABCDE\\nContent-Type: application/octet-stream; name=\"${shortf}\";\\nContent-Transfer-Encoding: base64\\nContent-Disposition: attachment;filename=\"${shortf}\"\\n\\n${basechars}\\n--19032019ABCDE--" else if [ "`echo \"${1}\" | sed '/^0/s///g' | sed '/^1/s///g' | sed '/^2/s///g' | sed '/^3/s///g' | sed '/^4/s///g' | sed '/^5/s///g' | sed '/^6/s///g' | sed '/^7/s///g' | sed '/^8/s///g' | sed '/^9/s///g'`" != "`echo \"${1}\"" ]; then if [ "`echo \"${1}\" | sed '/0$/s///g' | sed '/1$/s///g' | sed '/2$/s///g' | sed '/3$/s///g' | sed '/4$/s///g' | sed '/5$/s///g' | sed '/6$/s///g' | sed '/7$/s///g' | sed '/8$/s///g' | sed '/9$/s///g'`" != "`echo \"${1}\"" ]; then if [ "`echo \"${1}\" | sed '/\:/s///g'`" != "`echo \"${1}\"" ]; then twoy="" secstowait="0" nowis="`date '+%H:%M:%S'`" one="${1}" oney="${1}" if [ "`echo ${1} | tr -d '-'`" != "`echo ${1}`" ]; then twoy="`echo ${1} | sed '/\:00\:00\:00\:00/s///g'`:00:00:00:00" fi his="`echo ${nowis} | cut -f 1 -d ':'`" hfrom="`echo ${one}:00 | cut -f 1 -d ':' | tr -d '-'`" mis="`echo ${nowis} | cut -f 2 -d ':'`" mfrom="`echo ${one}:00 | cut -f 2 -d ':' | tr -d '-'`" sis="`echo ${nowis} | cut -f 3 -d ':'`" sfrom="`echo ${one}:00 | cut -f 3 -d ':' | tr -d '-'`" if [ ! -z "${preTZ}" ]; then bnowis="`date '+%H:%M'`" ccnowis="`TZ=${preTZ} date '+%H:%M:%S'`" cnowis="`TZ=${preTZ} date '+%H:%M'`" if [ "`echo ${nowis} | sed '/${cnowis}/s///g'`" == "`echo ${nowis}`" ]; then chis="`echo ${cnowis}:00 | cut -f 1 -d ':'`" cmis="`echo ${cnowis}:00 | cut -f 2 -d ':'`" csis="`echo ${ccnowis}:00 | cut -f 3 -d ':'`" one="`expr ${chis} - ${his} + ${hfrom}`:`expr ${cmis} - ${mis} + ${mfrom}`:`expr ${csis} - ${sis} + ${sfrom}`" hfrom="`echo ${one}:00 | cut -f 1 -d ':' | tr -d '-'`" mfrom="`echo ${one}:00 | cut -f 2 -d ':' | tr -d '-'`" sfrom="`echo ${one}:00 | cut -f 3 -d ':' | tr -d '-'`" his="`echo ${cnowis}:00 | cut -f 1 -d ':'`" mis="`echo ${cnowis}:00 | cut -f 2 -d ':'`" sis="`echo ${ccnowis}:00 | cut -f 3 -d ':'`" nowis="${ccnowis}" fi else bnowis="`date '+%H:%M'`" cnowis="`date '+%H:%M'`" fi if [ "`expr ${hfrom} - ${his} \<= 0`" == "1" ]; then #echo "Time found ${one} versus ${nowis} ... `expr ${hfrom} - ${his}`" if [ "`expr ${hfrom} - ${his} \< 0`" == "1" ]; then hfrom="`expr ${hfrom} + 24`" else if [ "`expr ${mfrom} - ${mis} \<= 0`" == "1" ]; then if [ "`expr ${mfrom} - ${mis} \< 0`" == "1" ]; then hfrom="`expr ${hfrom} + 24`" else if [ "`expr ${sfrom} - ${sis} \<= 0`" == "1" ]; then if [ "`expr ${sfrom} - ${sis} \< 0`" == "1" ]; then hfrom="`expr ${hfrom} + 24`" fi fi fi fi fi fi curpid="$$" precmdline="`ps -p ${curpid} -o args | sed '/^ARGS/s///g' | sed '/^ksh /s///g' | tr -d \"\n\"`" if [ -z "${twoy}" ]; then cmdline=`echo ${precmdline} | awk -v FS="${1}" '{ print $1 $2; }'` else rtd="`echo ${1} | sed '/\:00\:00\:00\:00/s///g'`" cmdline="`echo ${precmdline} | awk -v FS="${rtd}" '{ print $1 FS \":00:00:00:00\" $2; }'`" fi cmdline="`echo ${cmdline} | sed '/\:00\:00\:00\:00\:00\:00\:00\:00/s//\:00\:00\:00\:00/g'`" secstowait="`expr ${hfrom} - ${his}`" secstowait="`expr ${secstowait} \\* 3600`" stowait="`expr ${mfrom} - ${mis}`" stowait="`expr ${stowait} \\* 60`" secstowait="`expr ${stowait} + ${secstowait}`" stowait="`expr ${sfrom} - ${sis}`" secstowait="`expr ${stowait} + ${secstowait}`" if [ ! -z "${twoy}" ]; then secstowait="`expr 1 + ${secstowait}`" fi #echo "TIME found ${1} versus ${nowis} ... `expr ${hfrom} - ${his}` ... ${secstowait} ... ${cmdline} ... ${nowis} ... ${cnowis} ... sleep ${secstowait}; `echo ${cmdline}` nohup ksh -c \"sleep ${secstowait} ; cd \\\"`pwd`\\\" ; `echo ${cmdline}` ;\" > /dev/null 2> /dev/null" nohup ksh -c "sleep ${secstowait} ; cd \"`pwd`\" ; ksh `echo ${cmdline}` ;" > /dev/null 2>> /dev/null & if [ "`echo ${1} | sed '/\:00\:00\:00\:00/s///g'`" == "`echo ${1}`" ]; then exit fi else ppid="${1}" #if [ "`ps -ef | grep ' ${1} ' | grep -v 'grep'`" ]; then # exit #fi fi fi fi fi shift done emailfrom="`echo ${emailfrom} | tr -d ' '`" emailto="`echo ${emailto} | tr -d ' '`" emailcc="`echo ${emailcc} | tr -d ' '`" fi if [ ! -z "${flist}" ]; then i=0 for xfilebits in ${flist}; do ksh ${prefix} ${xfilebits} & ((i=i+1)) done fi while [ 0 -lt 1 ]; do if [ "$postiftwoquit" == "2" ]; then if [ "$iftwoquit" == "1" ]; then iftwoquit="`ps -ef | grep \" ${thispid} \" | grep ':00:00:00:00' | grep -v ' sleep ' | grep -v ' grep ' | wc -l | tr -d ' '`" if [ "$iftwoquit" != "0" ]; then if [ "$iftwoquit" != "1" ]; then exit fi fi fi elif [ "$postiftwoquit" == "1" ]; then postiftwoquit="`ps -ef | grep \" ${thispid} \" | grep -c ':00:00:00:00'`" fi if [ -z "${flist}" ]; then if [ ! -z "${ppid}" ]; then if [ "`ps -ef | grep ' ${ppid} ' | grep -v 'grep'`" ]; then exit fi fi fi if [ ! -z "${mimetype}" ]; then cur="`ps -ef | grep '/world.php' | grep -v 'grep ' | wc -l | tr -d ' '`" else cur="`ls -l ${filen}`" fi echo "`date` $cur" if [ "$lastcur" != "$cur" ]; then if [ -z "`echo \"${lastcur}\" | tr -d ' '`" ]; then lastdate="`date`" if [ ! -z "${mimetype}" ]; then echo "`ps -ef | grep '/world.php' | grep -v 'grep '`" > date_ps_ef_first.txt fi subjis="`echo \"${subjis}\" | sed \"/ with file/s// with ${subjmiddle}/g\" | sed \"/\[file\]/s//${subjmiddle}/g\"`" attachrest="`echo \"${attachrest}\" | sed \"/ with file/s// with ${subjmiddle}/g\" | sed \"/\[file\]/s//${subjmiddle}/g\"`" echo -e "${mimetype}From: ${emailfrom}\nTo: ${emailto}\nCC: ${emailcc}\n${emailbcc}Subject: ${subjis}\n${attachrest}" | sendmail -t -f ${emailto} if [ ! -z "${mimetype}" ]; then if [ ! -f "date_ps_ef_next.txt" ]; then echo "" > date_ps_ef_next.txt fi attachrest="\\n

Changed ${subjmiddle} at ${lastdate}

" fi if [ -z "${cur}" ]; then exit fi else thisdate="`date`" if [ ! -z "${mimetype}" ]; then subjis="Changed ${subjmiddle} at ${thisdate}" echo "`ps -ef | grep '/world.php' | grep -v 'grep '`" > date_ps_ef_next.txt else basechars="`base64 ${filen} | tr -d \"\\n\"`" if [ "`echo \"${subjis}\" | sed '/^First /s//Changed /g'`" != "`echo \"${subjis}\"`" ]; then subjis="Changed ${subjmiddle} at ${thisdate}" attachrest="Mime-Version: 1.0\\nContent-Type: multipart/mixed; boundary=\"19032019ABCDE\"\\n\\n--19032019ABCDE\\nContent-Type: text/${plain}; charset=\"iso-8859-1\"\\nContent-Transfer-Encoding: 8bit\\n\\n${hprefix}${subjis}${hsuffix}\\n\\n--19032019ABCDE\\nContent-Type: application/octet-stream; name=\"${shortf}\";\\nContent-Transfer-Encoding: base64\\nContent-Disposition: attachment;filename=\"${shortf}\"\\n\\n${basechars}\\n--19032019ABCDE--" else subjis="`echo \"${subjis}\" | sed \"/${lastdate}/s//${thisdate}/g\"`" attachrest="Mime-Version: 1.0\\nContent-Type: multipart/mixed; boundary=\"19032019ABCDE\"\\n\\n--19032019ABCDE\\nContent-Type: text/${plain}; charset=\"iso-8859-1\"\\nContent-Transfer-Encoding: 8bit\\n\\n${hprefix}${subjis}${hsuffix}\\n\\n--19032019ABCDE\\nContent-Type: application/octet-stream; name=\"${shortf}\";\\nContent-Transfer-Encoding: base64\\nContent-Disposition: attachment;filename=\"${shortf}\"\\n\\n${basechars}\\n--19032019ABCDE--" fi fi lastdate="${thisdate}" subjis="`echo \"${subjis}\" | sed \"/ with file/s// with ${subjmiddle}/g\" | sed \"/\[file\]/s//${subjmiddle}/g\"`" echo -e "${mimetype}From: ${emailfrom}\nTo: ${emailto}\nCC: ${emailcc}\n${emailbcc}Subject: ${subjis}\n${attachrest}" | sendmail -t -f ${emailto} if [ ! -z "${mimetype}" ]; then cat date_ps_ef_next.txt > date_ps_ef_first.txt fi fi lastcur="$cur" fi if [ ! -z "${mimetype}" ]; then if [ -z "${mimetype}" ]; then ps -ef | grep '/world.php' | grep -v 'grep ' fi fi sleep 30 done exit