How to calculate time


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to calculate time
# 8  
Old 11-12-2011
Hello Guys,

Thanks for your valuable comments. Is there any solution without creating temp file?
# 9  
Old 11-12-2011
My two cents, I would have used awk to process the output. No intermediate file, shell independence, and fewer total processes:

Code:
#!/usr/bin/env ksh

last $1 | awk -v month="$(date +%b)" '
   /wtmp/  ||  /still logged in/ || / sshd / { next; }

      NF > 0  &&  $(NF-5) == month {
        gsub( "\\(", "", $NF );         # ditch parens
        gsub( "\\)", "", $NF );

        if( index( $(NF), "+" ) )       # days+hr:min
        {
            split( $NF, b, "+" );       # capture days, leave hr and min in a
            days += b[1];
            split( b[2], a, ":" );
        }
        else
            split( $NF, a, ":" );       # no days, just caputre hr and min

        hr += a[1];
        min += a[2];
    }

    END {
        eh = int( min/60 );     # extra hours
        hr += eh;
        min -= 60 * eh;

        ed = int( hr/24 );      # extra days
        days += ed;
        hr -= 24 * ed;
        printf( " %dd%dh%dm\n", days, hr, min );   # print in XdXmXh notation
    }
'
exit $?

I do not understand the intent of this part of your pipe: grep -v '\(0[2-9]:.*\)'. Are you only wanting to look at sessions that lasted more than 10 hours or less than 2 hours?

Last edited by agama; 11-12-2011 at 04:24 PM.. Reason: Didn't account for wtmp beginning in current month; -R not supported on FreeBSD, changed to run there too
# 10  
Old 11-13-2011
Hi Agama,

Thanks for your reply. My code [code] grep -v '\(0[2-9]:.*\)' filter output if user is logged in more than 2 hours. My code is working. Only value of variable outside loop is bothering me.

Thanking You,
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Calculate Time diff in milli milliseconds(Time format : HH:MM:SS,NNN)

Hi All, I have one file which contains time for request and response. I want to calculate time difference in milliseconds for each line. This file can contain 10K lines. Sample file with 4 lines. for first line. Request Time: 15:23:45,255 Response Time: 15:23:45,258 Time diff... (6 Replies)
Discussion started by: Raza Ali
6 Replies

2. Programming

How to calculate compilation time using c?

is there function with library "time.h" to calculate the processing time of the code? (3 Replies)
Discussion started by: fwrlfo
3 Replies

3. Shell Programming and Scripting

calculate time from a given format

Hi i have a file which consists of the time records in following format H:MM:SS.sss 0:00:09.249 0:00:00.102 0:00:00.105 0:00:08.499 0:00:08.499 0:00:06.980 0:00:04.249 0:00:05.749 0:00:00.108 0:00:00.107 0:00:03.014 0:00:00.000 I need to calculate their equivalent milliseconds... (3 Replies)
Discussion started by: vaibhavkorde
3 Replies

4. Shell Programming and Scripting

Calculate age of a file | calculate time difference

Hello, I'm trying to create a shell script (#!/bin/sh) which should tell me the age of a file in minutes... I have a process, which delivers me all 15 minutes a new file and I want to have a monitoring script, which sends me an email, if the present file is older than 20 minutes. To do... (10 Replies)
Discussion started by: worm
10 Replies

5. Shell Programming and Scripting

How to calculate time difference between start and end time of a process!

Hello All, I have a problem calculating the time difference between start and end timings...! the timings are given by 24hr format.. Start Date : 08/05/10 12:55 End Date : 08/09/10 06:50 above values are in mm/dd/yy hh:mm format. Now the thing is, 7th(08/07/10) and... (16 Replies)
Discussion started by: smarty86
16 Replies

6. Programming

Calculate time to some date

Hello! I need to find how many days, hours and minutes remain to some specific date and I wonder why the following program shows incorrect values, such as 4 days 23 hours etc to 14:00 this Saturday from 17:33 today... #include <stdio.h> #include <time.h> int main() { time_t elaps,... (4 Replies)
Discussion started by: Sapfeer
4 Replies

7. UNIX for Dummies Questions & Answers

calculate the time

hello i want to display the time firstly when i run my shell script and after 25 min i want to display a message it says that the time left is 5 min. When the calculated time is 30 mins, the script should exit. can any one help me with that! Thanks in advance Regards :o (5 Replies)
Discussion started by: dndoon
5 Replies

8. Shell Programming and Scripting

How to calculate this time difference

Hi, Please help me in calculating the time difference between below mentioned timestamps. a=07/17/2007 02:20:00 AM MST b=07/17/2007 02:07:46 AM MST Thanks (2 Replies)
Discussion started by: Prat007
2 Replies

9. AIX

calculate time

Hi, How do I calculate time? I need to create an alert if a process is running more than 30 minutes. I need to get the first time and then get another, calculate it if more than 30 mins and then alert it to pager. Can't find it in internet. Thanks in advance, itik (2 Replies)
Discussion started by: itik
2 Replies

10. HP-UX

how to calculate CPU time under HP-UX

Hi, I am loking for a c++ function that calculate CPU time under HP-UX Thank you (1 Reply)
Discussion started by: limame
1 Replies
Login or Register to Ask a Question