Cover V10, I06

jun2001.tar


Listing 2 count_proc_ksh

1#!/bin/ksh  
2function mail_to_user
3{
4    echo $last has $count processes on host $host@
5    iaddress=${last}"+"
6    mailaddress=`grep $iaddress /usr/local/scripts/mailusermap | tr '+' ' ' | awk \
     '{print $2}'`
7    /usr/local/scripts/proc_letter $mailaddress $count $host > /tmp/pl$$
8    /usr/local/bin/pstree -wu $last >> /tmp/pl$$
9    /usr/local/scripts/proc_letter2 $host >> /tmp/pl$$
10    
11    cat /tmp/pl$$ | /bin/mailx -s "Urgent system letter" $mailaddress 
12    rm /tmp/pl$$
13}

14# MAIN - First get all valid processes owners
15 processes=`ps -ef | awk '{print $1}' | sort | grep -v root | grep -v daemon | \
   grep -v UID`
16 limit=1 ; count=1 ; last="qwert" ; host=`hostname`
17 for i in $processes 
18 do
19    userquota=`grep $last /usr/local/scripts/mailusermap | tr '+' ' ' | awk \
      '{print $3}'`
20    if [[ $userquota == "" ]] then
21        userquota=999
22    fi
23    uquota=`echo $userquota | awk '{print $1}'`
24    if [[ $i != $last ]] then
25        if (( $count > $uquota )) then
26            mail_to_user
27        fi
28        count=1
29    else
30        (( count=$count + 1  ))
31    fi
32    last=$i    
33 done
34 userquota=`grep $i /usr/local/scripts/mailusermap | tr '+' ' ' | awk \
   '{print $3}'`
35 if [[ $userquota == "" ]] then
36    userquota=999
37 fi
38 uquota=`echo $userquota | awk '{print $1}'`
39 if (( $count > $uquota )) then
40    mail_to_user
41 fi