Sponsored Content
Full Discussion: [Solved] Finger command
Top Forums UNIX for Dummies Questions & Answers [Solved] Finger command Post 302888734 by Don Cragun on Monday 17th of February 2014 05:20:17 AM
Old 02-17-2014
It looks like you can already produce your report just using finger, but need to add the year to lines that have a timestamp. Basically you have four line formats that you need to examine:
Code:
Last login Wed Aug  7, 2013 on pts/111
Last login Mon Sep 23 17:28 on pts/47 from remb02mkiwsf25
On since Feb 17 15:26:40 on pts/75
On since Jul 25, 2013 on pts/12

You don't need to do anything to the lines that have a year in them already (the 1st and 4th lines shown above). For the 2nd and 3rd lines, you can insert the current or previous year before the timestamp (or replace the timestamp) depending on whether the given month is less than the current month in this year. So, if the report you generated (as shown in message #3 in this thread) is stored in a file name report.txt, the following shell and awk script:
Code:
#!/bin/ksh
cmy=$(date +'%m%Y')
cm=${cmy%????}
cy=${cmy#??}
awk -v cm="${cm# }" -v cy="$cy" '
# Set the year associated with the month (M) and timestamp or year (TorY):
BEGIN { ML = "JanFebMarAprMayJunJulAugSepOctNovDec"
}
function setyear(M, TorY) {
        if(index(TorY, ":") == 0) return(TorY)  # We have a year; not a time.
        m = (index(ML, M) + 2) / 3              # Convert month name to number
        if(m > cm)      return(cy - 1 " " TorY) # return last year + time
        else            return(cy " " TorY)     # return this eyar + time
}
/^On since/ {
        $5 = setyear($3, $5)
}
/^Last login/ {
        $6 = setyear($4, $6)
}
{       print
}' report.txt

will produce the output:
Code:
The below user id wre34 is not an active user from Sep 2013. his last logon Aug 7 2013
  
Directory: /export/home/wre34           Shell: /bin/ksh
Last login Wed Aug 7, 2013 on pts/111
No unread mail
No Plan.
  
The other user id ivv41 las logon was Sep 21 2013
   
Directory: /export/home/ivv41           Shell: /bin/ksh
Last login Mon Sep 23 2013 17:28 on pts/47 from remb02mkiwsf25
Mail last read Sat Sep 21 15:13:31 2013
No Plan
    
current usr id
     
Directory: /export/home/por12           Shell: /bin/ksh
On since Feb 17 2014 15:26:40 on pts/75
Mail last read Sat Feb  1 15:25:28 2014
No Plan

If you just want the year and not the timestamp for data within the last six months, delete the code marked in red.

Although this was written and tested using the Korn shell, it will also work with bash or any other shell that performs standard parameter substitutions.

If you want to run this on a Solaris/SunOS system, use /usr/xpg4/bin/awk, /usr/xpg6/bin/awk, or nawk instead of the default /usr/bin/awk.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Using the Finger command in a Script

This is my senario..... The user enters a userid into linux. ((I have have already scripted the command to read this userid.)) I need help in writing the script so It reads the userID and in conjuction w/ the finger command displays to the user "no plan" on the screen (so the user reads/sees... (4 Replies)
Discussion started by: apolishuk
4 Replies

2. Shell Programming and Scripting

How to input username on text file into finger command on shell script

I'm trying to clean up my server and I have the list of some "special" users stored on the text file like this Now I want to write a shell script to finger all of them so I can have some kind of ideas who they are but here comes the problem....I completely forgot how to do it with shell... (3 Replies)
Discussion started by: Micz
3 Replies

3. UNIX for Advanced & Expert Users

finger command

Hello all, Here is what I am trying to do. If a user exist, then send an echo "EXIST" or else "DOES NOT EXIST". (under HP-UX) Kind of: #!/usr/bin/sh USER=mylogin finger $USER if $? = 0 then echo "EXIST"" else echo "DOES NOT EXIST" fi (10 Replies)
Discussion started by: qfwfq
10 Replies

4. Shell Programming and Scripting

help in finger command.

Hi, iam using sunsolaris. when you type finger command -- it dispalys information about local and remote users. but here it shows as can't stat /dev/gold:8664 can anybody help what is the solution for this error. previously the output came. thanks, shan (1 Reply)
Discussion started by: shanshine
1 Replies

5. UNIX for Dummies Questions & Answers

Extracting specific info from finger command

Hello all, my unix is bash based and the finger command output is: Login Name Tty Idle LoginTime Office amos.john Amos John pts/26 1 Dec 5 16:18 (77.100.22.07) What am trying to achieve is extract the Login (amos.john) and Name (Amos John) from this output without using awk or sed. ... (1 Reply)
Discussion started by: franny
1 Replies

6. UNIX for Advanced & Expert Users

finger command

I want to know the correct version of how i should use the finger command in this example below.(os is debian lenny) (nymserver.pl is located in /home/nymserv directory.) the two versions are : (in/etc/inetd.conf) finger stream tcp nowait nymuser /usr/nym/nymserv nymserv... (3 Replies)
Discussion started by: xstation
3 Replies

7. UNIX for Dummies Questions & Answers

Finger command help

Hi Does anyone know if there is anyway of doing the finger command for all user id's in my enviroment. What I need to obtain is the full names of all users on the system. I know if i do the finger command with no arguments it will list users currently logged in, but i need all users... ... (2 Replies)
Discussion started by: m3y
2 Replies

8. UNIX for Dummies Questions & Answers

Extracting specific info finger command

how to extract user machine name for current terminal using finger command below command gives machinename for all session , is it possible to filter it to only currernt terminal ? finger -b -p $LOGNAME | grep from (12 Replies)
Discussion started by: lalitpct
12 Replies

9. UNIX for Beginners Questions & Answers

Finger command and security issue

$ finger yeti Login: yeti Name: yeti Directory: /arpa/tz/y/yeti Shell: /bin/ksh On since Wed Apr 2 15:24 (UTC) on pts/149 Mail last read Mon Mar 31 11:08 2014 (UTC) No Plan. Hi there, I am trying to... (2 Replies)
Discussion started by: alvinoo
2 Replies

10. Solaris

Not able to disable finger & telnet command in Solaris 8

Hi I need to disable finger & telnet command in solaris 8 I have put the # infront of finger and telnet line in /etc/inetd.conf file. Further I have run the below command kill -1 <process id of inetd > But when I am running finger command it is till giving information for remote machine... (8 Replies)
Discussion started by: amity
8 Replies
All times are GMT -4. The time now is 09:58 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy