# Checkpoint Solaris / SPLAT R55/R65 Resource Monitoring Tool v3 - Felix # output is stored in a csv file using the $log variable # #!/bin/bash ## Import Environment Variables . /opt/CPshrd-R??/tmp/.CPprofile.sh ## If required create a directory if [ -d != /var/log/resource_report ] then mkdir /var/log/resource_report 2>/dev/null fi ## if required create a README if [ -e != /var/log/resource_report/README.txt ] then head -5 $0 > /var/log/resource_report/README.txt fi ## Assign Variables tmp=/tmp/cp_resource.$$ log=/var/log/resource_report/rreport-`date +"%Y%m%d"`.csv ## Log rotate reports older then 31 days find /var/log/resource_report/rreport* -mtime +31 -exec rm -f {} \; 2>/dev/null ## Gather stats fw ctl pstat >> $tmp 2>/dev/null if [ $? != 0 ] then logger -t cp_resource_report -p daemon.err "Unable to run \"fw ctl pstat\"" exit 1 else vmstat 1 5 >> $tmp 2>/dev/null RC=$? fi if [ $RC != 0 ] then logger -t cp_resource_report -p daemon.err "Unable to run \"vmstat\"" exit 1 else peakconn=`grep "peak concurrent" $tmp | awk ' { print $1 } '` cpuidle=`tail -1 $tmp | awk ' { print $NF } '` cpu=`expr 100 - $cpuidle` conn=`grep recovered $tmp | awk ' { print $7 } '` free=`tail -1 $tmp | awk ' { print $4 } '` freemb=`expr $free / 1024` fi ## Write stats to a file. If not find is present add a header if [ ! -r ${log} ] ; then echo date,time,connections,peak connections,cpu \%,free mem \(MB\) >> ${log} echo `date +"%d/%m/%y"`,`date "+%H:%M:%S"`,$conn,$peakconn,${cpu},${freemb} >> ${log} else echo `date +"%d/%m/%y"`,`date "+%H:%M:%S"`,$conn,$peakconn,${cpu},${freemb} >> ${log} fi rm -f $tmp exit 0