LAST command with Year


 
Thread Tools Search this Thread
Homework and Emergencies Emergency UNIX and Linux Support LAST command with Year
# 1  
Old 06-16-2010
LAST command with Year

Hi Guys, I'm trying to identify the last logins by all the users in the system in AIX. the last command gives me the output, but there is no year displayed for it . Since there is a duplication of months i mean Apr 2010 and Apr 2009 also its giving me inaccurate data.. Is there a way I can filter out the entries only for 2010.
# 2  
Old 06-16-2010
one solution is you mention the date from which you want to see who's logged in: the -t option of last command.

Code:
last -t 20100101010101

# 3  
Old 06-16-2010
-t will only give you the users who were logged into the system at that particular time. It wont give you the logs after that for ex... bash-3.00# last -t 201001010001 root pts/3 sa2sscp027 Dec 30 21:11 - 21:26 (43+00:15) root pts/1 sa2sscp027 Dec 30 17:11 - 21:26 (43+04:15) The above tells me only the users who were on the system at 1st Jan 2010 00:01 hrs
# 4  
Old 06-16-2010
If you feel comfortable with C code, you could try compiling something like this. It works on my Linux box, but I have no idea if it will work on AIX.

Code:
#include <stdio.h>
#include <utmp.h>
#include <string.h>
#include <time.h>

int main(void) {
        struct utmp *line;
        time_t timestamp;
        utmpname("/var/log/wtmp");
        setutent();
        while( (line = getutent()) != NULL) {
                if (line->ut_type == USER_PROCESS ) {
                        timestamp = line->ut_tv.tv_sec;
                        printf("%s %s", line->ut_user, asctime(localtime(&timestamp)));
                }
        }
        endutent();
        return 0;
}

There certainly would be a way to do this with perl, or any other systems programming language too.

I compile like this

Code:
$ gcc -Wall source.c -o progname


Last edited by malcolmpdx; 06-16-2010 at 09:16 PM.. Reason: better code
# 5  
Old 06-17-2010
MySQL

THx Guys,

In the mean time I have written one script which will give me the users last login in the system ( All users )
Code:
# !/usr/bin/bash

ssh unadm@$1 ' lsuser -a time_last_login ALL | sed 's/\ time_last_login=/:/g' > /userlogins

cat userlogins | grep : > temp | awk -F":" '{print $2}' temp | xargs -I {} perl -le "print scalar localtime ({})" > temp1
awk -F":" '{print $1}' temp > temp2
paste temp2 temp1
rm temp temp1 temp2

In the above I want to execute the first line command highlighted below as root using sudo..

ssh unadm@$1 ' lsuser -a time_last_login ALL | sed 's/\ time_last_login=/:/g' > /userlogins


Can anyone explain how can i use sudo in this remote command

---------- Post updated 06-17-10 at 12:30 AM ---------- Previous update was 06-16-10 at 07:50 PM ----------

Its done Well guys Smilie

Code:
# !/usr/bin/bash
if [ $# -eq 1 ]
then
echo "IPADDRESS : $1"
ssh unadm@$1 ' echo "HOSTNAME: $(hostname) \t  DATE: $(date)"'
ssh unadm@$1 "sudo lsuser -a time_last_login ALL | sed 's/\ time_last_login=/:/g'" > userlogins
cat userlogins | grep : > temp; awk -F":" '{print $2}' temp | xargs -I {} perl -le "print scalar localtime ({})" > temp1
awk -F":" '{print $1}' temp > temp2
paste temp2 temp1 | awk -F" " '{ printf "%-20s %s %s %-2d %s %d\n", $1, $2, $3, $4, $5, $6 }'
rm temp temp1 temp2
exit
else
echo "USAGE: $0 <IPADDRESS>"
exit 1
fi
bash-3.00$

Output as belowSmilie

Code:
HOSTNAME: test1     DATE: Thu Jun 17 00:11:13 CDT 2010
root                 Thu Jul 24 05:02:01 2008
testuser             Sun Jan 25 12:49:22 2009
mqm                  Tue Sep 9  04:23:46 2008
db2inst1             Sat Sep 12 00:38:38 2009
jrnj0i0              Mon Apr 13 05:51:25 2009
prp0i0               Mon Sep 7  00:24:04 2009

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Insert year in ls -l command

Hi All, Have a file where i stored ls -l command output, -rw-r--r-- 1 360 600 94255 Jan 01 11:16 file1_2020.csv -rw-r--r-- 1 360 600 114573 Dec 29 11:10 file2_2019.csv -rw-r--r-- 1 360 600 41006 Dec 30 11:09 file3_2019.csv -rw-r--r-- 1 360 ... (9 Replies)
Discussion started by: kumarinfa
9 Replies

2. UNIX for Dummies Questions & Answers

Command to print previous year in UNIX

hi all, I use date +%Y which gives Current year. Requirement: I want previous year to be printed. Please help me. Note: I tried date +%d/%m/%Y -d "-1 years" which is not working. (10 Replies)
Discussion started by: wasim999
10 Replies

3. Shell Programming and Scripting

Find week of the year for given date using date command inside awk

Hi all, Need an urgent help on the below scenario. script: awk -F"," 'BEGIN { #some variable assignment} { #some calculation and put values in array} END { year=#getting it from array and assume this will be 2014 month=#getting it from array and this will be 05 date=#... (7 Replies)
Discussion started by: vijaidhas
7 Replies

4. UNIX for Dummies Questions & Answers

Unix man command to find out month of the year?

how can i display month of the year i was born with using man command? thanks (2 Replies)
Discussion started by: janetroop95
2 Replies

5. Linux

uptime command output when the server is running more than one year?

What is the uptime command output when the server is running more than one year? My doubt is whether it show in number of days format or number years and number of days format? For example, Assume the server is running 400 days 3 hrs 3 min 3 secs. The output like 400 days 3:3 min or 1 year 5... (3 Replies)
Discussion started by: maruthu
3 Replies

6. UNIX for Dummies Questions & Answers

Last Command not giving year

Hi All, i want the last login details along with year. i tried below command but not giving me the year of last login. last <$Userid> | head -1 i heard that if it is current year then it wont display the year else it will display the year. is it so? if yes then , is there any way of... (1 Reply)
Discussion started by: ani_rvce
1 Replies

7. Shell Programming and Scripting

Last Command not giving year

Hi All, i want the last login details along with year. i tried below command but not giving me the year of last login. last <$Userid> | head -1 i heard that if it is current year then it wont display the year else it will display the year. is it so? if yes then , is there any way of... (1 Reply)
Discussion started by: ani_rvce
1 Replies

8. Shell Programming and Scripting

Printing Year in ls -ltr command

Hi, When retrieving parameters of a file using ls command i need to print the year part . When i do ls -ltr the following output is displayed -rwxrwxrwx 1 d_infd d_infd 1711 Jan 8 2004 wf1.class. Here the year part is not displayed only Jan 8 is displayed. Can any one... (9 Replies)
Discussion started by: ragugct
9 Replies

9. UNIX for Dummies Questions & Answers

listing year in ls command

Hi all .. As per rule i searched the forum i am not able found out ... I want to display the year in when listing the files .. when i use ls -lt it is not displaying files with recent 6 month old .. I know that perderabo has written a script for that if you give that link it will be... (3 Replies)
Discussion started by: arunkumar_mca
3 Replies

10. UNIX for Dummies Questions & Answers

How to find out the exact year in "Last modified time" using ls command

Hi, I understand that the ls command with "-l" option generates the "last modified time" of specific directory. However, some generated results displayed the "last modified time" with detail about the last modified year, for example: -rwxrwxrwx+ 1 smith dev 10876 May 16 2005 part2 ... (6 Replies)
Discussion started by: Dophlinne
6 Replies
Login or Register to Ask a Question

Featured Tech Videos