Existuje knihovna s názvem libfaketime
(také na GitHubu), což vám umožňuje, aby systém hlásil daný čas vaší aplikaci. Můžete buď nechat systém hlásit pevný čas po dobu provádění programu, nebo spustit hodiny v nějaký konkrétní čas (například 01:59:30). V podstatě připojíte knihovnu faketime do obrazu v paměti vašeho programu pomocí zavaděče knihovny a ona zachytí a zpracuje svým vlastním způsobem všechna systémová volání, která se týkají systémového času. Přesně se to nemění systémový čas, ale mění to, jaký čas se uvádí do vaší konkrétní aplikace, aniž by to ovlivnilo cokoli jiného, co běží, což je pravděpodobně to, o co skutečně usilujete (jinak nevidím důvod, proč nezměnit pouze globální systémový čas).
Existuje řada možných variant, jak jej používat, ale vypadá to, že Změna času, který si proces myslí, že je, pomocí libfaketime má docela důkladný seznam spolu s ukázkovým kódem, který je lze vyzkoušet. Google by také měl být schopen odhalit některé příklady, protože víte, co hledat.
Zdá se, že není k dispozici zabalené prostřednictvím repozitářů RHEL, ale například Debian jej poskytuje pod názvem balíčku faketime
. Také se přímo těší na sestavení ze zdrojového kódu (zřejmě ani nepotřebuje configure
krok nebo něco podobného).
Co bych udělal, je nejprve nainstalovat ntp
služba pro synchronizaci času se vzdáleným serverem. Poté zastavte službu, ručně změňte datum, pohrajte si a restartujte službu:
service ntpd stop
date -s "Aug 11 2012"
[ do stuff ]
service ntpd start