Es gibt eine Bibliothek namens libfaketime
(auch auf GitHub), mit dem Sie das System dazu bringen können, eine bestimmte Zeit an Ihre Anwendung zu melden. Sie können das System entweder eine feste Zeit für die Dauer der Programmausführung melden lassen oder die Uhr zu einer bestimmten Zeit starten (z. B. 01:59:30). Im Grunde hängen Sie die faketime-Bibliothek über den Bibliothekslader in das In-Memory-Image Ihres Programms ein, und sie erfasst und verarbeitet auf ihre eigene Weise alle Systemaufrufe, die sich auf die Systemzeit beziehen. Es ändert sich nicht genau die Systemzeit, aber es ändert, welche Zeit gemeldet wird an Ihre spezifische Anwendung anpassen, ohne irgendetwas anderes zu beeinflussen, das ausgeführt wird, was wahrscheinlich das ist, wonach Sie wirklich suchen (ansonsten sehe ich keinen Grund, nicht einfach die globale Systemzeit zu ändern).
Es gibt eine Reihe möglicher Varianten, wie man es verwendet, aber es sieht so aus, als hätte das Ändern der Zeit, die ein Prozess mit libfaketime denkt, eine ziemlich ausführliche Auflistung zusammen mit Beispielcode, um sie auszuprobieren. Google sollte auch in der Lage sein, einige Beispiele zu finden, vorausgesetzt, Sie wissen, wonach Sie suchen müssen.
Es scheint, dass es nicht vorgepackt über die RHEL-Repositories verfügbar ist, aber beispielsweise Debian stellt es unter dem Paketnamen faketime
bereit . Es sieht auch einfach aus, aus dem Quellcode zu bauen (es braucht anscheinend nicht einmal einen configure
Schritt oder so ähnlich).
Was ich tun würde, ist zuerst einen ntp
zu installieren Dienst zum Synchronisieren der Zeit mit einem Remote-Server. Stoppen Sie dann den Dienst, ändern Sie das Datum manuell, spielen Sie herum und starten Sie den Dienst neu:
service ntpd stop
date -s "Aug 11 2012"
[ do stuff ]
service ntpd start