Sponsored Content
Top Forums Shell Programming and Scripting User Logged In The Most - Bash Post 302497189 by Panman82 on Wednesday 16th of February 2011 02:22:42 PM
Old 02-16-2011
User Logged In The Most - Bash

Hi, first time poster, newbie to Bash. I'm looking to get the username of the user who's been logged into a computer the most / longest.

I am new to Bash but am familiar with other scripting languages, mainly PHP. So I have a general idea about how to go about the script logic, but don't know all the syntax. So far I can get the list of console users and their session times:

Code:
last | grep console | awk '{print $1 " " $9}'
user.name in
user.name (01:03)
user.name (2+00:05)
other.user (3+15:31)
user.name (08:09)
other.user (15:45)

Now I would basically need to:
  1. Loop through each session
    1. Ignore any session time not formatted as (d+hh:mm), ex: current session
    2. Parse the session time and convert to minutes, ex: (2+03:12) = 3072
    3. Add users session time to their logged-in time (array of user => time)
  2. Sort array of users by their logged-in time
  3. Return the top/bottom username (depending on sort order)
I'm going to keep working at this but thought I'd post here in case anyone can help. Thanks for any help you can provide!
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Is user logged on??

How can i check to see if a user is logged on to the network? (1 Reply)
Discussion started by: provo
1 Replies

2. Shell Programming and Scripting

user logged on?

Hi, What commands do i need to check if a user is logged on to the network? thanks. (1 Reply)
Discussion started by: provo
1 Replies

3. UNIX and Linux Applications

user logged on any server

the method to find out the all the user who are the current user of the system? i tried with the who. but with that i receive the TTY like something. (3 Replies)
Discussion started by: NIMISH AGARWAL
3 Replies

4. UNIX for Advanced & Expert Users

Send email as a different user than the user logged in

Hi I am using mailx to send email and am wondering if there is a way I can send the email from a different user than the user logged in. something like do-not-reply@xyz.com Thank you. (1 Reply)
Discussion started by: rakeshou
1 Replies

5. Shell Programming and Scripting

How can one know how much time user logged?

Hello, i know who command gives you the time when particular user logged in. And subtracting today's date and time from the one found in who we can get how much time user logged in. But this can get very much clumsy as we can't subtract date directly in unix . Is there any other way or command... (4 Replies)
Discussion started by: salman4u
4 Replies

6. Shell Programming and Scripting

Does running a cron job of a user require the user to be logged in?

Suppose user 'asdf' is not logged into server 'bbbb', but the server is up. User 'asdf' has cron job. Will it be executed? (1 Reply)
Discussion started by: thulasidharan2k
1 Replies

7. Red Hat

How to confirm an user logged in is a remote user?

How do I confirm if a user logged in, is remote or local? In the case if the user is remote, how to be sure what authentication/method is it using, like LDAP, NIS or other? (2 Replies)
Discussion started by: kirtikjr
2 Replies

8. Shell Programming and Scripting

current logged in user

Hey guys I need a script that reads a login name and verifies if that user is currently logged in i have found few commands like "who" and "users" but i wonder how can i verify it that login name is logged in or not? (3 Replies)
Discussion started by: nishrestha
3 Replies

9. Shell Programming and Scripting

Last user logged in

hi! How can I find into: /var/log/messages.4 /var/log/messages.3 /var/log/messages.2 /var/log/messages.1 /var/log/messages The last user do a login? (for example user1) My idea is to search by the pattern "Accepted password for" buy I necessary search into all files first and in the... (2 Replies)
Discussion started by: guif
2 Replies

10. Shell Programming and Scripting

Logged in windows user name

Hi All, We use putty to connect to a unix box. We want to identify the folks involved in running certain shell scripts on the server. I want to identify the windows user id of those folks who have logged through Putty to run the scripts.As unix-id is shared by more than two folks, tracking... (3 Replies)
Discussion started by: mdkareemuddin
3 Replies
LAST(1) 						    BSD General Commands Manual 						   LAST(1)

NAME
last -- indicate last logins of users and ttys SYNOPSIS
last [-swy] [-d [[CC]YY][MMDD]hhmm[.SS]] [-f file] [-h host] [-n maxrec] [-t tty] [user ...] DESCRIPTION
The last utility will either list the sessions of specified users, ttys, and hosts, in reverse time order, or list the users logged in at a specified date and time. Each line of output contains the user name, the tty from which the session was conducted, any hostname, the start and stop times for the session, and the duration of the session. If the session is still continuing or was cut short by a crash or shutdown, last will so indicate. The following options are available: -d date Specify the snapshot date and time. All users logged in at the snapshot date and time will be reported. This may be used with the -f option to derive the results from stored utx.log files. When this argument is provided, all other options except for -f and -n are ignored. The argument should be in the form [[CC]YY][MMDD]hhmm[.SS] where each pair of letters represents the follow- ing: CC The first two digits of the year (the century). YY The second two digits of the year. If YY is specified, but CC is not, a value for YY between 69 and 99 results in a CC value of 19. Otherwise, a CC value of 20 is used. MM Month of the year, from 1 to 12. DD Day of the month, from 1 to 31. hh Hour of the day, from 0 to 23. mm Minute of the hour, from 0 to 59. SS Second of the minute, from 0 to 61. If the CC and YY letter pairs are not specified, the values default to the current year. If the SS letter pair is not specified, the value defaults to 0. -f file Read the file file instead of the default, /var/log/utx.log. -h host Host names may be names or internet numbers. -n maxrec Limit the report to maxrec lines. -s Report the duration of the login session in seconds, instead of the default days, hours and minutes. -t tty Specify the tty. Tty names may be given fully or abbreviated, for example, ``last -t 03'' is equivalent to ``last -t tty03''. -w Widen the duration field to show seconds, as well as the default days, hours and minutes. -y Report the year in the session start time. If multiple arguments are given, and a snapshot time is not specified, the information which applies to any of the arguments is printed, e.g., ``last root -t console'' would list all of ``root's'' sessions as well as all sessions on the console terminal. If no users, hostnames or terminals are specified, last prints a record of all logins and logouts. The pseudo-user reboot logs in at reboots of the system, thus ``last reboot'' will give an indication of mean time between reboot. If last is interrupted, it indicates to what date the search has progressed. If interrupted with a quit signal last indicates how far the search has progressed and then continues. FILES
/var/log/utx.log login data base SEE ALSO
lastcomm(1), getutxent(3), ac(8), lastlogin(8) HISTORY
A last utility appeared in 3.0BSD. BUGS
If a login shell should terminate abnormally for some reason, it is likely that a logout record will not be written to the utx.log file. In this case, last will indicate the logout time as "shutdown". BSD
January 21, 2010 BSD
All times are GMT -4. The time now is 11:51 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy