Solved

How to count users accessing to unix server

Posted on 2008-11-02
14
438 Views
Last Modified: 2013-12-27
I want to count how many users accessing our unix server.

The unix command should do the following :
i. list all users logged in to the server
ii. list of all users that their id , letsay any user id that has trailing id with "gues2008"
iii. simply count total users in (ii), but no duplication, ie, if there are more than one session user A had accessed, thenit shold considered as one.
iv. if possible , from the list (ii) can differentiate local access or remote access.

Thanks.
0
Comment
Question by:KG1973
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 3
  • 3
  • +3
14 Comments
 
LVL 1

Author Comment

by:KG1973
ID: 22862342
I had used finger command, but it doesn't tell us the total number of users.
0
 
LVL 84

Expert Comment

by:ozo
ID: 22862370
finger -l | grep '^Login:' | wc -l
0
 
LVL 68

Expert Comment

by:woolmilkporc
ID: 22862452
Hi,
1.)   'who'
2.) ???
3.) 'who | cut -f1 -d" " | sort | uniq | wc -l'

4.Look at the 4th column of 'who' output. You'll see there the hostnames (or addresses) the users come from.
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 68

Expert Comment

by:woolmilkporc
ID: 22862479
Hi again,

try this one, perhaps its a step towards the answer to question 'ii' :

 lsuser -a gecos $(echo $(who | cut -f1 -d" " |sort | uniq) | tr " " ",")


0
 
LVL 68

Expert Comment

by:woolmilkporc
ID: 22862508
... and in case you don't like the 'gecos=' stuff, please:

 lsuser -a gecos $(echo $(who | cut -f1 -d" " |sort | uniq) | tr " " ",") | sed "s/gecos=//"
0
 
LVL 48

Accepted Solution

by:
Tintin earned 200 total points
ID: 22863231
i.   w
ii.  w | grep gue2008
iii.  who  |  awk '/gues2008/ {print $1}' | sort -u | wc -l
iv. Depends what you mean by 'local'.  Local as in from your network?  Directly connected to the server?
0
 
LVL 1

Author Comment

by:KG1973
ID: 22863528
Hence  the following users logged in to the system :
ABCgue2008
ABCgue2008
HIJgue2008
KLMgue2008
MNOgue2008
PQRgue2008
STUgue2008

if I type this command,  who | grep 'gue2008' | wc -l
This will give the total count of 7. But I don't want to count double entries ( ABCgue2008 ).
Thus the output should be 6.

So what cmd or flag should  I use ?
0
 
LVL 68

Assisted Solution

by:woolmilkporc
woolmilkporc earned 100 total points
ID: 22863536
'who | cut -f1 -d" "  | grep gue2008  | sort | uniq | wc -l'

0
 
LVL 48

Expert Comment

by:Tintin
ID: 22863559
See my answer (iii.) that I've already provided.
0
 
LVL 1

Author Comment

by:KG1973
ID: 22863981
Tintin,
Sorry I missed some flags, thats why it is not working when i try earlier.
Now I am repeating it again, It work. Thanks.
Can you explain what the argument " awk '/gues2008/ {print $1} '" do actually,  mean 1 by 1.
awk ?
{print $1} ?

Also i found that i can also use finger instead of who. Is there any distinctive diff ?

0
 
LVL 48

Expert Comment

by:Tintin
ID: 22864824
The /gues2008/ mean match any line that contains the string 'gues2008'.

print $1 means print the first field (in this case, the user column)
0
 
LVL 6

Expert Comment

by:peter991
ID: 22866013
$> last | grep "still logged in" | awk '{print $1}' | grep gues2008 | sort -u | wc -l
0
 
LVL 3

Expert Comment

by:Saranyakkali
ID: 22867135
The best and simple is check with " last "command.. why cont i gve you that script?

Thanks
0
 
LVL 68

Expert Comment

by:woolmilkporc
ID: 22867220
Hi,
the problem with 'last' is, when you do some pruning/shortening/archiving of your wtmp file, you will loose the records of users who have logged in a longer time ago and are still logged in.
wmp
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction Regular patching is part of a system administrator's tasks. However, many patches require that the system be in single-user mode before they can be installed. A cluster patch in particular can take quite a while to apply if the machine…
Using libpcap/Jpcap to capture and send packets on Solaris version (10/11) Library used: 1.      Libpcap (http://www.tcpdump.org) Version 1.2 2.      Jpcap(http://netresearch.ics.uci.edu/kfujii/Jpcap/doc/index.html) Version 0.6 Prerequisite: 1.      GCC …
Learn several ways to interact with files and get file information from the bash shell. ls lists the contents of a directory: Using the -a flag displays hidden files: Using the -l flag formats the output in a long list: The file command gives us mor…
Learn how to get help with Linux/Unix bash shell commands. Use help to read help documents for built in bash shell commands.: Use man to interface with the online reference manuals for shell commands.: Use man to search man pages for unknown command…

756 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question