libfaketime
というライブラリがあります (これも GitHub にあります)これにより、システムが特定の時間をアプリケーションに報告できるようになります。プログラムの実行中に一定の時間をシステムに報告させるか、特定の時間 (01:59:30 など) に時計を開始させることができます。基本的に、faketime ライブラリをライブラリ ローダーを介してプログラムのメモリ内イメージにフックし、システム時間に関連するすべてのシステム コールを独自の方法でキャプチャして処理します。正確には変わらない システム時刻ですが、報告される時刻が変わります 実行中の他のアプリケーションに影響を与えることなく、特定のアプリケーションにアクセスできます。これはおそらく、あなたが実際に求めているものです (そうでなければ、グローバル システム時刻だけを変更しない理由はないと思います)。
それを使用する方法にはいくつかの可能なバリエーションがありますが、 libfaketime を使用してプロセスが考える時間を変更すると、それらを試すためのサンプルコードとともにかなり完全なリストが表示されます。何を検索すればよいかを知っていれば、Google もいくつかの例を発見できるはずです。
RHEL リポジトリから事前にパッケージ化されていないように見えますが、たとえば Debian ではパッケージ名 faketime
で提供されています。 .また、ソースコードからビルドするのも簡単に見えます (明らかに configure
さえ必要ありません)。 ステップまたはそのようなもの)。
私がすることは、最初に ntp
をインストールすることです リモートサーバーと時刻を同期するサービス。次に、サービスを停止し、手動で日付を変更し、いろいろ試してサービスを再起動します:
service ntpd stop
date -s "Aug 11 2012"
[ do stuff ]
service ntpd start