sorting data from who by IP


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers sorting data from who by IP
# 8  
Old 06-16-2008
Quote:
Originally Posted by raidzero
To get really lazy, is there a way to ONLY show the duplicate IPs?

Code:
who | \
sort -k6.2 | \
awk '{
  if (x[$6]++) {
    if (prev)
       printf("%-8s %s\n", prev, $6)
    printf("%-8s %s\n", $2, $6)
    prev=""
  } else
    prev = $2
}'

# 9  
Old 06-16-2008
that code works great. One last thing. how to incorporate it into a shell script inside a menu? this is what I am trying to do:

Code:
clear                                                  
while :                                                
do                                                     
                                                       
echo "User Inquiry"                                    
echo "1. Show users by idle time"                      
echo "2. Show users by IP"                             
echo "3. Show only multiple connections from same IP"  
echo "4. Exit"                                         
echo "Please enter your choice [1 - 4]"                
read option                                            
case $option in                                        
                                                       
1) clear;                                              
 who -u | sort -k4.2,6 | more;;                        
2) clear;                                              
 who | sort -k6.2,6 | more;;                           
3) clear;                        
 who | \                         
sort -k6.2 | \                   
awk '{                           
if (x[$6]++)  {                  
   if (prev)                     
    printf("%-8s %s\n", prev, $6)
   printf("%-8s %s\n, $2, $6)    
   prev=""                       
 } else                          
  prev = $2                      
                                 
}';;                             
4) clear;                        
 exit l;;                        
esac                             
done

does not work. I do not have much scripting experience and it is giving errors because of the \n I think, but I really have no idea. Thanks
# 10  
Old 06-16-2008
Here is a little script that will list the who output for users that have multiple sessions as well as the associated pids for that session. Let me know if this was helpful to you.

#!/bin/ksh

typeset -i cnt
who | sort |
while read lin
do
usrnme=$(echo "$lin" | awk '{print $1}')
ip=$(echo "$lin" | awk '{print $6}')
ipcnt=$(who | grep "$usrnme" | grep "$ip" | wc -l | awk '{print $1}')

if [ "$ipcnt" -gt "1" ]
then
who | grep "$usrnme" | grep "$ip" |
while read lin2
do
ptsnum=$(echo "$lin2" | awk '{print $2}')
echo "$lin2"
/bin/ps -t ${ptsnum}
echo
sleep 1
done
else
continue
fi
done
# 11  
Old 06-16-2008
Lets try this one instead. Had one too many while loops in the first one.

#!/bin/ksh

typeset -i cnt
who | sort |
while read lin
do
usrnme=$(echo "$lin" | awk '{print $1}')
ip=$(echo "$lin" | awk '{print $6}')
ipcnt=$(who | grep "$usrnme" | grep "$ip" | awk '{print $1}' | wc -l)

if [ "$ipcnt" -gt "1" ]
then
ptsnum=$(echo "$lin" | awk '{print $2}')
echo "$lin"
/bin/ps -t ${ptsnum}
echo
sleep 1
else
continue
fi
done
# 12  
Old 06-19-2008
Here is a short script to give everything you want. Just run the script and it will list ALL users with multiple sessions and the associated PIDS. Let me know if it helps.
#!/bin/ksh

rep=$1
export usrcnt
typeset -i usrcnt CNT

who | grep "$rep" | sort |
while read lin
do
usrnme=$(echo "$lin" | awk '{print $1}')
if [ "$oldusrnme" = "$usrnme" ]
then
continue
fi
ip=$(echo "$lin" | awk '{print $6}')
usrcnt=$(who | sort | grep "$usrnme" | grep "$ip" | wc -l | awk '{print
$1}')
usrssn=$(who | sort | grep "$usrnme" | grep "$ip"|awk '{print $1,$3,$4,$
5,$6,"PID: "$2}')

if [ "$usrcnt" -gt "1" ]
then
echo "$usrssn" |
while read ussn
do
echo "$ussn" | read usid jnk1 jnk2 jnk3 jnk4 jnk5 ptsn
allptspid=$(/bin/ps -t ${ptsn} | grep -v PID|awk '{print
$1}')
ptspidS=$(echo $allptspid)
echo "\n$ussn PID: $ptspidS"

sleep 1
oldusrnme=$usrnme
continue
done
echo "..............................................."
else
continue
fi
done
 
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How AS 400 sorting data?

Hi Gurus, I have a requests to sort data based on AS 400 sorting order. below is example: the data is sorted by ascending order. could anybody explain how AS 400 sort data? IMM00007 07918607 1242 423 (3 Replies)
Discussion started by: green_k
3 Replies

2. Shell Programming and Scripting

Sorting the data with date

Hi, PFB the data: C_Random_130417 Java_Random_130518 Perl_Random_120519 Perl_Random_120528 so the values are ending with year,i.e.,130417 i want to sort the values with date. i want the output like this: Perl_Random_120519 Perl_Random_120528 C_Random_130417 Java_Random_130518 can... (5 Replies)
Discussion started by: arindam guha
5 Replies

3. Shell Programming and Scripting

Sorting the Data

My actual data looks like below i have given only format. i can't give exact data format of my requirement due to some reasons. I this set of data lines about 5000 I need to come up with information in below exact format of my data set : Line<space>Number1<space>"somedata":... (1 Reply)
Discussion started by: ckaramsetty
1 Replies

4. UNIX for Dummies Questions & Answers

Help with Data Sorting

Hi All, I have a long list made of 4 columns containing entries such as the following example: a b c d 0 0 0 0 1 2 1 2 2 5 3 4 3 8 4 6 4 10 9 8 5 15 8 10So the top row is the header and I need to arrange the data in a way as to... (11 Replies)
Discussion started by: pawannoel
11 Replies

5. UNIX for Dummies Questions & Answers

Sorting data

Hello guys. I need help figuring this one out. It's probably really easy. Thanks in advance! I have a file say for example containing this: Rice Food Carrots Food Beans Food Plates Kitchen Fork Kitchen Knives Kitchen I need: Food Rice, Carrots, Beans Kitchen Plates, Fork,... (7 Replies)
Discussion started by: visuelz
7 Replies

6. UNIX for Dummies Questions & Answers

Help with Data Sorting Command

Hi, I have a problem on data sorting, example my file as below: 123 123/789 aaa bbb ccc ddd (adf) 112 112/123 aaa bbb ccc (ade) 102 1a3/7g9 (adf)03 110 12b/129 aaa bbb ccc ddd fff(a8f)03 117 42f/8c9 aaa bbb ccc ddd (adf) 142 120/tyu fff... (7 Replies)
Discussion started by: 793589
7 Replies

7. UNIX for Dummies Questions & Answers

Sorting data from a to z

Hi, Let's say I have these 3 columns; NGC1234 6 9 SL899 4 1 NGC1075 8 3 SL709 5 2 And I want to sort the data according to the first column (from a to z) like having them as: NGC1075 8 3 NGC1234 6 9 SL709 5 2 SL899 4 1 Can that be done... (2 Replies)
Discussion started by: cosmologist
2 Replies

8. Shell Programming and Scripting

PERL data - sorting

Hello, I have a page where multiple fields and their values are displayed. But I am able to sort only a few fields. When I looked into the issue, it is seen that the for each row of info , an unique id is generated and id.txt is generated and saved. Only those fields which are inside that id.txt... (3 Replies)
Discussion started by: eagercyber
3 Replies

9. Shell Programming and Scripting

Sorting blocks of data

Hello all, Below is what I am trying to accomplish: I have a file that looks like this /* ----------------- xxxx.y_abcd_00000050 ----------------- */ jdghjghkla sadgsdags asdgsdgasd asdgsagasdg /* ----------------- xxxx.y_abcd_00000055 ----------------- */ sdgsdg sdgxcvzxcbv... (8 Replies)
Discussion started by: alfredo123
8 Replies
Login or Register to Ask a Question