在Unix系统上,是否可以伪造子进程的已知日期和时间?
即,想象一下:
$ date
Fri Jun 28 10:50:35 CEST 2019
$ with_date 10/05/2019 date
Fri May 10 10:50:36 CEST 2019
如何实现with_date
命令?
典型的用例是测试与日期/时间相关的软件,模拟各种条件。
答案 0 :(得分:4)
有一个库libfaketime。它使用库预加载机制来拦截要运行的程序的系统调用。一个用例(来自手册)是:
user @ host>日期
2016年11月23日星期二12:01:05 CESTuser @ host> LD_PRELOAD = / usr / local / lib / libfaketime.so.1 FAKETIME =“-15d”日期
2016年11月8日星期一12:01:12 CESTuser @ host> LD_PRELOAD = / usr / local / lib / libfaketime.so.1 FAKETIME =“-15d” FAKETIME_DONT_FAKE_MONOTONIC = 1 java -version
java版本“ 1.8.0_111”
Java(TM)SE运行时环境(内部版本1.8.0_111-b14)Java HotSpot(TM) 64位服务器VM(内部版本25.111-b14,混合模式)