In: , ,
On: 2004 / 03 / 20 Viewed: 49571 times
Shorter URL for this post: http://ozh.in/r

This script logs CPU load for a given process, every n seconds into a file
Requires : bash, ps, awk
Examples :
psmon <process name> [delay [logfile]]
psmon sshd logs %CPU load from process sshd, every 5 seconds, to file psmon.log.[day]
psmon q3ded 10 q3ded.log logs %CPU load from process q3ded, every 10 seconds, to file q3ded.log

CODE:
  1. #!/bin/bash
  2.  
  3. if [ -z $1 ] ; then
  4.     echo "Monitor a cpu load for a given process, every n seconds"
  5.     echo "Usage : `basename $0` <process name> [delay [logfile]]"
  6.     echo "   [delay] : defaults to 5 seconds"
  7.     echo "   [logfile] : defaults to psmon.log.yymmdd.hhmmss"
  8.     echo "   if you specify a logfile, you MUST specify a delay"
  9.     echo "Example : psmon q3ded 10 q3dedmonitor.log"
  10.     echo "Example : psmon q3ded"
  11.     exit 0
  12. fi
  13.  
  14. PROCESS=$1
  15.  
  16. if $(ps -C "$PROCESS">/dev/null) ; then
  17.     # process exists
  18.     WARNING=""
  19. else
  20.     # process doesnt exist
  21.     WARNING="Warning : $PROCESS NOT running at the moment !"
  22. fi
  23.  
  24.  
  25. LOGFILE=$3
  26. if [ -z $3 ] ; then
  27.     LOGFILE=psmon.log.$(date +%Y%m%d.%H%M%S)
  28. fi
  29.  
  30. DELAY=$2
  31. if [ -z $2 ] ; then
  32.     DELAY=5
  33. fi
  34.  
  35. C="\033[1m"
  36. N="\033[0m"
  37.  
  38. echo -e "${N}Monitoring $C$PROCESS$N cpu load, every $C$DELAY$N s, to file $C$LOGFILE"
  39. echo -e $WARNING
  40.  
  41. echo "# psmon logfile"> $LOGFILE
  42. echo "# Process name : $PROCESS">> $LOGFILE
  43. echo "# Started : $(date +%D\ \@\ %X)">> $LOGFILE
  44. echo "">> $LOGFILE
  45.  
  46. # Now logging the stuff
  47.  
  48. while true; do
  49.     ps -C "$PROCESS" -o "pcpu" | awk '{a+=$1} END {print a}'>> $LOGFILE
  50.     sleep $DELAY
  51. done

Shorter URL

Want to share or tweet this post? Please use this short URL: http://ozh.in/r

Metastuff

This entry "ps monitor" was posted on 20/03/2004 at 10:32 pm and is tagged with , ,
Watch this discussion : Comments RSS 2.0.

No Comment yet

  1. 1
    TomBoss France »
    thought, on 04/May/04 at 12:14 am # :

    FirstPost
    (au cas ou)

Leave a Reply

Comment Guidelines or Die

  • HTML: You can use these tags: <a href=""> <em> <i> <b> <strong> <blockquote>
  • Posting code: Post raw code (no <> &lt; etc) within appropriate tags : [php][/php], [css][/css], [html][/html], [js][/js], [sql][/sql], [xml][/xml], or generic [code][code]
  • Gravatars: Curious about the little images next to each commenter's name ? Go to Gravatar.
  • Spam: Various spam plugins on patrol. I'll put pins in a Voodoo doll if you spam me.
  • I will mark as Spam test comments, all comments with SEO names (ie "My Cool Online Shop" instead of "Joe") or containing forum-like signatures.

Read more ?