Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
FAKETIME(1)			    wolfcw			   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 sys-
       tem 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  libfake-
       time, 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,  or have a look at http://github.com/wolfcw/libfake-
       time

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.

       --exclude-monotonic
	      Do not fake time when the	program	makes a	call to	 clock_gettime
	      with a CLOCK_MONOTONIC clock.

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'
       faketime	-f '+2,5y i2,0'	/bin/bash -c 'while true; do date ; sleep 1 ; done'
       In this single case all spawned processes will use the same global clock	without	restarting it at the start of each process.

       (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 com-
       mand 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 libfaketime documentation. 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 usu-
	      ally  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
	      format 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 ex-
	      ample,  "-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 settings, 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
	      without 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 exam-
       ple, "+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 mea-
       sured 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  sec-
       onds  for  one second measured by the program. Again, depending on your
       locale, either "x2.0" or	"x2,0" may be required	regarding  the	delim-
       iter. You can also make faketime	to advance the reported	time by	a pre-
       set interval upon each time() call independently	from the system's time
       using  "-7d  i2,0",  where  "i" is followed by the increase interval in
       seconds.

       Faking times for	multiple programs or even system-wide can  be  simpli-
       fied  by	using ~/.faketimerc files and /etc/faketimerc. Please refer to
       the README that came with faketime for warnings and details.

AUTHOR
       Please see the README and NEWS files for	contributors.

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.  Some  pro-
       grams may dynamically load system libraries, such as librt, at run-time
       and therefore bypass libfaketime. You may report	programs that  do  not
       work with libfaketime, but only if they are available as	open source.

REPORTING BUGS
       Please use https://github.com/wolfcw/libfaketime/issues

COPYRIGHT
       Copyright (C) 2003-2013 by the libfaketime authors.

       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.9.6			   June	2014			   FAKETIME(1)

NAME | SYNOPSIS | DESCRIPTION | OPTIONS | EXAMPLES | ADVANCED TIMESTAMP FORMAT | ADVANCED USAGE | AUTHOR | BUGS | REPORTING BUGS | COPYRIGHT | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=faketime&sektion=1&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help