Sponsored Content
Top Forums Shell Programming and Scripting How to calculate the time difference. Post 302248333 by manosubsulo on Friday 17th of October 2008 10:18:48 AM
Old 10-17-2008
Try this...

Code:
ssh -l ora${sid} ${primaryhost}  "awk '{print $3,$4,$5,$6}' /oracle/$ORACLE_SID/sapbackup/back$ORACLE_SID.log" | while read t1 t2 t3 t4
do
        tap1=`echo "$t1 $t2" | sed 's/[-/\.]/ /g'`
        tap2=`echo "$t3 $t4" | sed 's/[-/\.]/ /g'`
        echo $tap1
        echo $tap2
        nawk -f mk.awk -v _tm_test_1="$tap1" -v _tm_test_2="$tap2" >> ${RESULTFILE}
done
 
mk.awk:
----------
function Init()
{
        # Initialize table of month lengths
        _tm_months[0,1] = _tm_months[1,1] = 31
        _tm_months[0,2] = 28; _tm_months[1,2] = 29
        _tm_months[0,3] = _tm_months[1,3] = 31
        _tm_months[0,4] = _tm_months[1,4] = 30
        _tm_months[0,5] = _tm_months[1,5] = 31
        _tm_months[0,6] = _tm_months[1,6] = 30
        _tm_months[0,7] = _tm_months[1,7] = 31
        _tm_months[0,8] = _tm_months[1,8] = 31
        _tm_months[0,9] = _tm_months[1,9] = 30
        _tm_months[0,10] = _tm_months[1,10] = 31
        _tm_months[0,11] = _tm_months[1,11] = 30
        _tm_months[0,12] = _tm_months[1,12] = 31
}
# decide if a year is a leap year
function _tm_isleap(year,    ret)
{
        ret = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)
        return ret
}
# convert a date into seconds
function _tm_addup(a,    total, yearsecs, daysecs, hoursecs, i, j)
{
        hoursecs = 60 * 60
        daysecs = 24 * hoursecs
        yearsecs = 365 * daysecs
        total = (a[1] - 1970) * yearsecs
        # extra day for leap years
        for (i = 1970; i < a[1]; i++)
        if (_tm_isleap(i))
            total += daysecs
        j = _tm_isleap(a[1])
        for (i = 1; i < a[2]; i++)
        total += _tm_months[j, i] * daysecs
        total += (a[3] - 1) * daysecs
        total += a[4] * hoursecs
        total += a[5] * 60
        total += a[6]
        return total
}
# mktime --- convert a date into seconds, compensate for time zone
function mktime(str, res1, res2, a, b, i, j, t, diff)
{
        i = split(str, a, " ")    # don't rely on FS
        if (i != 6)
        return -1
        # force numeric
        for (j in a)
        a[j] += 0
        # validate
        if (a[1] < 1970 ||
        a[2] < 1 || a[2] > 12 ||
        a[3] < 1 || a[3] > 31 ||
        a[4] < 0 || a[4] > 23 ||
        a[5] < 0 || a[5] > 59 ||
        a[6] < 0 || a[6] > 60 )
            return -1
        res1 = _tm_addup(a)
        return res1
}
BEGIN  {
        Init()
        t = mktime(_tm_test_1)
        s = mktime(_tm_test_2)
        if (t != "-1" && s != "-1")
        {
                diff = s - t
                PerD=(24 * 60 * 60)
                DD = diff/PerD
                rem = (diff - (PerD * int(DD)))
                HH = rem / (60 * 60)
                mi = rem - (int(HH) * 60 * 60)
                MM = mi / 60
                SS = mi - (int(MM) * 60)
                printf("Time taken to Complete is %d Days %d Hour %d Minutes %d Seconds - Total Seconds %s\n", DD, HH, MM, SS, diff)
        }
        else
                print "Wrong Inputs.."
}

 

10 More Discussions You Might Find Interesting

1. 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

2. Shell Programming and Scripting

How to calculate the time difference...

Hi All, I've written a script which reads all the systems backup information and saves it in a log file. ssh -l ora${sid} ${primaryhost} "tail -2 /oracle/$ORACLE_SID/sapbackup/back$ORACLE_SID.log" |head -1 | awk '{print echo "PREVIOUS:-- Start Date&Time: " $3,$4,echo "|| End Date&Time:... (1 Reply)
Discussion started by: suri.tyson
1 Replies

3. Shell Programming and Scripting

Formatting output so I can calculate time difference between two stamps

I know there have been a million questions regarding calculating time stamps, and with enough googling, I think I'm almost there (I'm going to use the changing the times into seconds and subtracting solution). My problem is that I'm not sure how to format my log file to get the info I need. Below... (0 Replies)
Discussion started by: DeCoTwc
0 Replies

4. 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

5. Shell Programming and Scripting

Calculate the Time stamp difference

hi, I have a log file which gives time stamps hh:mm:ss.sssss format in which hh- hours , mm -minutes ss.sssss - seconds.microseconds I need to calculate the time diff between sent time stamp and received time stamp .... could any one please help me.. i am tryin to write a script but... (2 Replies)
Discussion started by: firestar
2 Replies

6. 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

7. Shell Programming and Scripting

Calculate time stamp difference

Hi All, I am new to shell scripting.I have to write a shell script for the problem statement: "A file is updated continously. If it is not updated for a day then an error message needs to pop up." So the script needs to read the last modified time of that file and current system time .If... (4 Replies)
Discussion started by: bharath.phatak
4 Replies

8. Shell Programming and Scripting

Calculate time difference between pst and pdt dates in perl

Hi, how to calculate the time difference between PST date and PDT date in perl scripting. date1: Mon Dec 31 16:00:01 PST 2015 date2: Tue Mar 19 06:09:30 PDT 2013 and also difference between PST-PST and PDT-PDT need difference in months or days (months prefereble). (3 Replies)
Discussion started by: praveen265
3 Replies

9. Shell Programming and Scripting

Calculate time difference

I have time in a file in HH:MM:SS format as it contents(its not the file creation time). i need this to be converted to epoch time or time since 1970. The time is written into that file by a script, which i cannot modify. Im using AIX machine $ cat abc.txt 10:29:34 (2 Replies)
Discussion started by: gpk_newbie
2 Replies

10. Shell Programming and Scripting

Calculate time difference between two lines

i grepped the time stamp in a file as given below now i need to calculate time difference file data: 18:29:10 22:15:50 (5 Replies)
Discussion started by: vivekn
5 Replies
tztab(4)						     Kernel Interfaces Manual							  tztab(4)

NAME
tztab - time zone adjustment table for date and ctime() DESCRIPTION
The file describes the differences between Coordinated Universal Time (UTC) and local time. Several local areas can be represented simul- taneously with historical detail. The file consists of one or more time zone adjustment entries. The first line of the entry contains a unique string that may match the value of the string in the user's environment. The format is where is the time zone name or abbreviation, diff is the difference in hours from UTC, and is the name or abbreviation of the "Daylight Savings" time zone. Fractional values of diff are expressed in minutes preceded by a colon. Each such string will start with an alphabetic character. The second and subsequent lines of each entry details the time zone adjustments for that time zone. The lines contain seven fields each. The first six fields specify the first minute in which the time zone adjustment, specified in the seventh field, applies. The fields are separated by spaces or tabs. The first six are integer patterns that specify the minute (0-59), hour (0-23), day of the month (1-31), month of the year (1-12), year (1970-2038), and day of the week (0-6, with 0=Sunday). The minute, hour, and month of the year must contain a number in the (respective) range indicated above. The day of the month, year, and day of the week can contain a number as above or two numbers separated by a minus (indicating an inclusive range). Either the day of the month or the day of the week field must be a range, the other must be simple number. The seventh field is a string that describes the time zone adjustment in its simplest form: where is an alphabetic string giving the time zone name or abbreviation, and diff is the difference in hours from UTC. must match either the field or the field in the first line of the time zone adjustment entry. Any fractional diff is shown in minutes. Comments begin with a in the first column, and include all characters up to a newline. Comments are ignored. EXTERNAL INFLUENCES
International Code Set Support Single-byte character code sets are supported. EXAMPLES
The time zone adjustment table for the Eastern Time Zone in the United States is: Normally (as indicated in the first line) Eastern Standard Time is five hours earlier than UTC. During Daylight Savings time, it changes to a 4 hour difference. The first time Daylight Savings Time took effect (second line) was on January 6, 1974 at 3:00 a.m., EDT. Note that the minute before was 1:59 a.m., EST. The change back to standard time took effect (sixth line) on the last Sunday in November of the same year. At that point, the time went from 1:59 a.m., EDT to 1:00 a.m., EST. The transition to Daylight Savings Time since then has gone from the last Sunday in February (third line) to the last Sunday in April (fourth line) to the first Sunday in April (fifth line). The return to standard time for the same period has remained at the last Sunday in October (seventh line). AUTHOR
was developed by HP. FILES
SEE ALSO
date(1), ctime(3C), environ(5). tztab(4)
All times are GMT -4. The time now is 05:00 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy