Solved

How to count users accessing to unix server

Posted on 2008-11-02
14
411 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
  • 5
  • 3
  • 3
  • +3
14 Comments
 
LVL 1

Author Comment

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

Expert Comment

by:ozo
Comment Utility
finger -l | grep '^Login:' | wc -l
0
 
LVL 68

Expert Comment

by:woolmilkporc
Comment Utility
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
 
LVL 68

Expert Comment

by:woolmilkporc
Comment Utility
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
Comment Utility
... 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
Comment Utility
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
Comment Utility
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
Highfive Gives IT Their Time Back

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 
LVL 68

Assisted Solution

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

0
 
LVL 48

Expert Comment

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

Author Comment

by:KG1973
Comment Utility
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
Comment Utility
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
Comment Utility
$> last | grep "still logged in" | awk '{print $1}' | grep gues2008 | sort -u | wc -l
0
 
LVL 3

Expert Comment

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

Thanks
0
 
LVL 68

Expert Comment

by:woolmilkporc
Comment Utility
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

Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

Join & Write a Comment

Suggested Solutions

Attention: This article will no longer be maintained. If you have any questions, please feel free to mail me. jgh@FreeBSD.org Please see http://www.freebsd.org/doc/en_US.ISO8859-1/articles/freebsd-update-server/ for the updated article. It is avail…
Why Shell Scripting? Shell scripting is a powerful method of accessing UNIX systems and it is very flexible. Shell scripts are required when we want to execute a sequence of commands in Unix flavored operating systems. “Shell” is the command line i…
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…
In a previous video, we went over how to export a DynamoDB table into Amazon S3.  In this video, we show how to load the export from S3 into a DynamoDB table.

762 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

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now