#!/bin/bash
#################################################################################
# rund_mem             : Log memory usage.                                      #
# By                   : Edwin Vandamme                                         #
#                        qualitycam@gmail.com                                   #
# Creation             : 26/09/2011                                             #
# Version              : 1.0.0                                                  #
#################################################################################
# REMARKS :                                                                     #
# TIPS :                                                                        #
#                                                                               #
#################################################################################

# Variables.
SN="${0##*/}"                                               # Script name.
SD="${0:0:${#0}-${#SN}}"                                    # Script location.
HN=`hostname`                                               # Server.
LM="/Programs/functions/test.mysql/rund.mem.log"                       # Log file.

# Get switchd processes.
P=`ps ax --noheaders | grep '/Programs/functions/test.mysql/rund' | grep -v 'grep' | grep -v 'rund_mem' | awk '{print $1}'`

# Build process list.
K=""
for aP in `echo "$P" | awk '{print $1}'`; do
   K=$K" "$aP
done

# Check if process was started.
lLen=5
lCnt=0
let mCnt=60/$lLen

if [ "$K" != "" ]; then
   while [ "$lCnt" -lt "$mCnt" ]; do
      D=`date +"%F %H:%M:%S"`
#      `cat /proc/$P/stat | awk '{print " pid "$1" comm "$2" state "$3" ppid "$4" pgrp "$5" session "$6" tty_nr "$7" tpgid "$8" flags "$9" minflt "$10" cminflt "$11" majflt "$12" cmajflt "$13" utime "$14" stime "$15" cutime "$16" cstime "$17" priority "$18" nice "$19" O "$20" starttime "$21" vsize "$22" rss "$23" rlim "$24" startcode "$25" endcode "$26" startstack "$27" kstkeip "$28" signal "$29" blocked "$30" sigignore "$31" sigcatch "$32" wchan "$33" nswap "$34" cnswap "$35" exit_signal "$36" processor "$37" rt_priority "$38" policy "}' >> $LM`
#      M=`cat /proc/$P/stat | awk '{print $D" "$22" "$23" "$10" "$11" "$12" "$13" "$34" "$35}' >> $LM`
#      M=`cat /proc/$P/stat | awk '{print $22" "$23" "$10" "$11" "$12" "$13" "$34" "$35}'`
      M=`cat /proc/$P/stat | awk '{print $23}'`
      `echo $D" : "$M >> $LM`
      sleep $lLen
      let lCnt+=1
   done
fi
