Sponsored Content
Full Discussion: Time Diff in shell script
Top Forums Shell Programming and Scripting Time Diff in shell script Post 302448344 by agama on Wednesday 25th of August 2010 10:09:18 PM
Old 08-25-2010
Unless you have a non-Posix flavour of date you'll have the dickens of a time trying to work magic with date arithmetic. If all you want is the wall clock time (real time) that a process (script, or programme) took to run then try this:

Code:
#!/usr/bin/env ksh 
#ksh is cleaner because ksh gets it right when reading from a pipe into variables
(time -p sleep 5) 2>&1 | read junk real; 
echo $real

Code:
#!/usr/bin/env bash
# if you have to, messier because bash buggers reading from pipes
real=$( (time -p sleep 5) 2>&1 )
real=${real#real }
echo ${real%%user*}

What I have done in the past is to write a simple C programme that prints the current time as an integer and use that to capture the time before and after a series of commands. Not all that accurate, but if your commands are running for a few minutes then the time to load and execute the little programme twice can be neglected. It was also quicker to do that than to dork round with date and time when AT&T AST or GNU tools aren't available.

Code:
start=$( itime )         # integer time in seconds
# command(s)
end=$( itime )

echo "duration: $(( $end - $start ))s"

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell script to manipulate a message count for the same IP @ diff session

I have a file as like below, 10:20:30.45 START 10.20.30.40 10:20:31.46 HELLO 10.20.30.40 10:20:32.46 START 10.20.30.41 10:20:33.44 END 10.20.30.40 10:20:35.44 HELLO 10.20.30.41 10:20:36.56 HELLO 10.20.30.41 10:20:37.78 HELLO 10.20.30.41 10:20:38.99 START 10.20.30.40... (1 Reply)
Discussion started by: gobinath
1 Replies

2. Shell Programming and Scripting

Process diff command output in a shell script

diff -yta file1 file2 #!/usr/abc/b/bin/perl5.6 | #!/usr/abc/b/bin/perl5.8 Notable thing about above line is "|" appears at 62nd position. When the same line is assigned in a variable in a ksh script, using ss=$(diff -yta file1 file2) it appears as ... (4 Replies)
Discussion started by: bhaliyajalpesh
4 Replies

3. Shell Programming and Scripting

Shell script using Diff

Hello - I have a small diff script that checks 2 directories. It reports the difference in count such as wc -l, and also names the different files. How should I get "ERROR: diff found . (host)" - when it actually finds a diff? This is how I have written: #!/bin/bash ... (10 Replies)
Discussion started by: DallasT
10 Replies

4. Shell Programming and Scripting

Shell script to convert epoch time to real time

Dear experts, I have an epoch time input file such as : - 1302451209564 1302483698948 1302485231072 1302490805383 1302519244700 1302492787481 1302505299145 1302506557022 1302532112140 1302501033105 1302511536485 1302512669550 I need the epoch time above to be converted into real... (4 Replies)
Discussion started by: aismann
4 Replies

5. UNIX for Dummies Questions & Answers

Diff between calling a shell script with ./ and . ./

Hi ALL I have a shell script named setUP in which i am sourcing one variable like source var_name="CLASSPATH". When i call it as ./setUP, it does not set the var_name variable. But when i call it like . ./setUP then var_name is set up. What is the difference between this two calls? ... (1 Reply)
Discussion started by: SasDutta
1 Replies

6. Shell Programming and Scripting

Diff between calling a shell script with ./ and . ./

Hi ALL I have a shell script named setUP in which i am sourcing one variable like source var_name="CLASSPATH". When i call it as ./setUP, it does not set the var_name variable. But when i call it like . ./setUP then var_name is set up. What is the difference between this two calls? ... (2 Replies)
Discussion started by: SasDutta
2 Replies

7. Shell Programming and Scripting

serach diff filename in diff location using shell scripting

Hi, I am new to shell scripting. please help me to find out the solution. I need a script where we need to read the text file(consists of all file names) and get the file names one by one and append the date suffix for each file name as 'yyyymmdd' . Then search each file if exists... (1 Reply)
Discussion started by: Lucky123
1 Replies

8. Shell Programming and Scripting

Shell script to compare ,diff and remove betwen 2 files

Hi Friends Need your expertise. Command to check the difference and compare 2 files and remove lines . example File1 is master copy and File2 is a slave copy . whenever i change, add or delete a record in File1 it should update the same in slave copy . Can you guide me how can i accomplish... (3 Replies)
Discussion started by: ajayram_arya
3 Replies

9. Shell Programming and Scripting

Howto compare the columns of 2 diff tables of 2 different schemas in UNIX shell script

HI All, I am new to Unix shell scripts.. Could you please post the unix shell script for for the below request., There are two different tables(sample1, sample2) in different schemas(s_schema1, s_schema2). Unix shell script to compare the columns of two different tables of two... (2 Replies)
Discussion started by: Rajkumar Gopal
2 Replies

10. 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
FAKETIME(1)							     W.Hommel							       FAKETIME(1)

NAME
faketime - manipulate the system time for a given command SYNOPSIS
faketime [options] timestamp program [arguments...] DESCRIPTION
The given command will be tricked into believing that the current system time is the one specified in the timestamp. The wall clock will continue to run from this date and time unless specified otherwise (see advanced options). Actually, faketime is a simple wrapper for lib- faketime, which uses the LD_PRELOAD mechanism to load a small library which intercepts system calls to functions such as time(2) and fstat(2). This wrapper exposes only a subset of libfaketime's functionality; please refer to the README file that came with faketime for more details and advanced options. OPTIONS
--help show usage information and quit. --version show version information and quit. -m use the multi-threading variant of libfaketime. -f use the advanced timestamp specification format. EXAMPLES
faketime 'last Friday 5 pm' /bin/date faketime '2008-12-24 08:15:42' /bin/date faketime -f '+2,5y x10,0' /bin/bash -c 'date; while true; do echo $SECONDS ; sleep 1 ; done' faketime -f '+2,5y x0,50' /bin/bash -c 'date; while true; do echo $SECONDS ; sleep 1 ; done' (Please note that it depends on your locale settings whether . or , has to be used for fractional offsets) ADVANCED TIMESTAMP FORMAT
The simple timestamp format used by default applies the /bin/date -d command to parse user-friendly specifications such as 'last friday'. When using the faketime option -f, the timestamp specified on the command line is directly passed to libfaketime, which enables a couple of additional features such as speeding the clock up or slowing it down for the target program. It is strongly recommended that you have a look at the README file that came with faketime for the details. Summary: Freeze clock at absolute timestamp: "YYYY-MM-DD hh:mm:ss" If you want to specify an absolute point in time, exactly this format must be used. Please note that freezing the clock is usually not what you want and may break the application. Only use if you know what you're doing! Relative time offset: "[+/-]123[m/h/d/y], e.g. "+60m", "+2y" This is the most often used format and specifies the faked time relatively to the current real time. The first character of the for- mat string must be a + or a -. The numeric value by default represents seconds, but the modifiers m, h, d, and y can be used to specify minutes, hours, days, or years, respectively. For example, "-2y" means "two years ago". Fractional time offsets can be used, e.g. "+2,5y", which means "two and a half years in the future". Please note that the fraction delimiter depends on your locale set- tings, so if "+2,5y" does not work, you might want to try "+2.5y". Start-at timestamps: "@YYYY-MM-DD hh:mm:ss" The wall clock will start counting at the given timestamp for the program. This can be used for specifying absolute timestamps with- out freezing the clock. ADVANCED USAGE
When using relative time offsets or start-at timestamps (see ADVANCED TIMESTAMP FORMAT above and option -f), the clock speed can be adjusted, i.e. time may run faster or slower for the executed program. For example, "+5y x10" will set the faked time 5 years into the future and make the time pass 10 times as fast (one real second equals 10 seconds measured by the program). Similarly, the flow of time can be slowed, e.g. using "-7d x0,2", which will set the faked time 7 days in the past and set the clock speed to 20 percent, i.e. it takes five real world seconds for one second measured by the program. Again, depending on your locale, either "x2.0" or "x2,0" may be required regarding the delimiter. Faking times for multiple programs or even system-wide can be simplified by using ~/.faketimerc files and /etc/faketimerc. Please refer to the README that came with faketime for warnings and details. AUTHOR
Maintained by Wolfgang Hommel <wolf@code-wizards.com>. Please see the README and Changelog files for contributers. BUGS
Due to limitations of the LD_PRELOAD mechanism, faketime will not work with suidroot and statically linked programs. While timestamps and time offsets will work for child processes, speeding the clock up or slowing it down might not work for child processes spawned by the exe- cuted program as expected; a new instance of libfaketime is used for each child process, which means that the libfaketime start time, which is used in speed adjustments, will also be re-initialized. REPORTING BUGS
Please send an e-mail to Wolfgang Hommel <wolf@code-wizards.com> COPYRIGHT
Copyright (C) 2003-2008 by Wolfgang Hommel. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. You may redistribute copies of faketime under the terms of the GNU General Public License. For more information about these matters, see the file named COPYING. SEE ALSO
ld.so(1), time(2), fstat(2) faketime 0.8 August 2008 FAKETIME(1)
All times are GMT -4. The time now is 03:49 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy