[bash-script] vsz, rss logger for one process

#!/bin/bash
BIN_PROC_FILES="my_bin"
LOG_FILE=/tmp/memlog.log
RM_LOG_FILE=0
G_STDOUTPUT=1

function write_log
{
  CUR_TIME_STR=`date +"%Y%m%d_%H%M%S"`
  if [ ${G_STDOUTPUT} -gt 0 ]; then
    echo "${CUR_TIME_STR} $1"
  fi
  if [ "${LOG_FILE}" != "" ] ; then
    echo "${CUR_TIME_STR} $1" >> ${LOG_FILE}
  fi
}

function loop_proc
{
  for CUR_BIN in ${BIN_PROC_FILES}
  do
    PID_SNIPER=`pidof ${CUR_BIN}`
    if [ "${PID_SNIPER}" != "" ]; then
      MEM_STATS=`ps --pid ${PID_SNIPER} -o rss,vsz`
      LINE_CNT=`echo "${MEM_STATS}" | wc -l`
      if [ ${LINE_CNT} -gt 1 ]; then
        MEM_STAT=`echo "${MEM_STATS}" |tail -n 1`
      fi
      write_log "${CUR_BIN} ${PID_SNIPER} ${MEM_STAT}"
    fi
  done
}

if [ ${RM_LOG_FILE} -gt 0 ]; then
  if [ "${LOG_FILE}" != "" ] ; then
    rm ${LOG_FILE}
  fi
fi

while true
do
  loop_proc
  sleep 1
done

Comments

Popular posts from this blog

e1000e 0000:00:1f.6 eno1: Detected Hardware Unit Hang

[WordPress] Change https redirect in DB.

sanitize on in CMakeLists.txt