Linux

偽造特定 shell 會話的日期

  • January 9, 2015

我當然想在這裡實現一些奇怪的東西,但我想在本地偽造日期以在 GNU/Linux 上進行 shell 會話。我需要對程序在不同日期的行為進行黑盒測試,並且修改系統範圍的日期可能會產生不必要的副作用(cron 作業、混亂的日誌等)。

有任何想法嗎 ?

您可以通過以下方式使用執行檔faketime(來自 ubuntu repositories sudo apt-get install faketime):

faketime -f "-15d" date

甚至是整個外殼的假時間

faketime -f "-15d" bash -l

這個還沒試過。但是,如果這是目前的,看起來有人已經編寫了庫,您可以使用libfaketime預載入。

基本用法是:

user@host> LD_PRELOAD=/usr/local/lib/libfaketime.so.1 FAKETIME="-15d" date
Mon Nov  8 12:01:12 CEST 2007

您可以使用ltrace它來確保涵蓋您的應用程序使用的所有時間功能。

引用自:https://serverfault.com/questions/138325