#!/usr/bin/perl -w ######################################################################### # Author: Brian T. Hunter # Date: 8/29/2023 # Script: bb-pmem.pl # # 1. ADD at bottom of tasks.cfg and maybe clientlaunch.cfg # # [pcup] # ENVFILE $XYMONCLIENTHOME/etc/xymonclient.cfg # CMD $XYMONCLIENTHOME/ext/bb-pmem.pl # LOGFILE $XYMONCLIENTLOGS/bb-pmem.log # INTERVAL 5m # # 2. ADD to bottom of /etc/xymon/xymserver.cfg file # # SPLINTNCV_pmem="*:GAUGE" # # 3. ADD to TEST2RRD variable in /etc/xymon/xymonserver.cfg file # # At end, pmem=ncv # # 4. ADD to GRAPHS variable in /etc/xymon/xymonserver.cfg file # # At end, pmem::100 # # 5. ADD to bottome of /etc/xymon/graphs.cfg # # [pmem] # FNPATTERN ^pmem,(.*).rrd # TITLE MEMORY PER USER # YAXIS MEMORY % Used # DEF:***@RRDIDX@=@RRDFN@:lambda:AVERAGE # LINE2:***@RRDIDX@#@COLOR@:@RRDPARAM@ # GPRINT:***@RRDIDX@:LAST: \: %3.1lf (cur) # GPRINT:***@RRDIDX@:MAX: \: %3.1lf (max) # GPRINT:***@RRDIDX@:MIN: \: %3.1lf (min) # GPRINT:***@RRDIDX@:AVERAGE: \: %3.1lf (avg)\n # # # 6. THEN RESTART XYMON: sudo systemctl restart xymon # # ####################################################################### my $COLUMN="pmem"; my $COLOR="green"; my $MSG="MEMORY PER USER"; my $MACHINE=`hostname`; chomp($MACHINE); my $BB="/usr/lib/xymon/server/bin/xymon"; my $BBDISP="127.0.0.1"; my $LOGFILE="/tmp/$COLUMN.log"; unlink($LOGFILE); open(OUT,">>$LOGFILE") or warn "Unable to write to $LOGFILE:$!\n"; my @USERS=`ps -efa | awk '{print \$1}' | sort -u | egrep -v "UID|Debian|message|ntp"`; foreach my $user (@USERS){ chomp($user); my $MEMPER=`ps -U $user -eo pmem | sort -u | grep -v MEM | awk '{sum += \$1} END {print sum}'`; chomp($MEMPER); print OUT "$user:$MEMPER\n"; } close(OUT); $CMD="$BB $BBDISP \"status $MACHINE.$COLUMN $COLOR `date` \n $MSG\n `/bin/cat $LOGFILE`\" \n"; print "$CMD\n"; system($CMD); exit(0);