GNU/Linux >> Linux の 問題 >  >> Linux

Linux runasdate アナログ

RunAsDate が行うことは次のとおりです:

<ブロック引用>

RunAsDate は、現在の日付と時刻 (GetSystemTime、GetLocalTime、GetSystemTimeAsFileTime) を返すカーネル API 呼び出しをインターセプトし、現在の日付/時刻を指定した日付/時刻に置き換えます。

Linux では、同じことを達成するためのいくつかのオプションがあります:

<オール>
  • プログラムの Windows バージョンを入手できれば、Wine で RunAsDate を実行できる可能性があります (ただし、最近のバグに注意してください)。

  • これを行うためのラッパー ライブラリを見つけるか、独自に作成します。いくつかのオプションを以下に示します。

  • 仮想マシンを使用します。これはやり過ぎですが、ゲスト VM の OS は基盤となるホストから完全に分離されているため、システム時間をまったく異なるものに設定できます。他のオプションよりもセットアップが速い場合があります。

  • オプション 2 は、実行しようとしているものに応じて、さまざまな方法で実現できます。以下の DaveParillo の回答は、さまざまな方法を説明し、実行可能ファイルのコードを含む DIY アプローチへのリンクです。その他のオプションには次のものがあります:

    • datefudge 、Debian/Ubuntu リポジトリおよびその他の場所で入手できます。

    • Time-Fake perl モジュール、パッケージ libtime-fake-perl として Debian リポジトリにもあります .

    • FakeTime プリロード ライブラリ (別名 libfaketime 、freshmeat リンク)、動的にリンクされたバイナリでシステム コールをインターセプトできるライブラリ。 Squeeze と Sid の Debian リポジトリで利用できます。


    Linux Ubuntu で RunAsDate に代わるものを見つける際に同じ問題があり、この解決策にたどり着きました.

    RunAsDate で使用するプログラムのランチャーを作成しました。使用するソフトウェアが Foo である場合は、デスクトップに Foo.desktop というファイルを作成し、gedit または同様のテキスト エディターを使用して変更します。次に、次のコード行を追加します:

    [Desktop Entry]
    Name=Foo
    Comment=Runs the Foo application
    Exec=sh -c "sudo date --set '01 Jan 2008 12:00:00'; path/to/Foo; sudo timedatectl set-ntp no; sudo timedatectl set-ntp yes;"
    Icon=path/to/icon.png
    Terminal=true
    Type=Application
    StartupNotify=true
    

    名前、コメント、アイコンの情報を実際のリソースで変更するだけです。

    Exec オプションは、アプリケーションの使用中にセッションのシステム日付を変更し、終了すると自動的にシステム日付を再同期します。


    Linux
    1. Linuxでタイムゾーンを確認する方法

    2. Linux –ファイルの作成日を見つける方法は?

    3. Linux での date コマンドの例

    1. Linuxでの8つのクイック日付コマンドの例

    2. Linux でファイルの最終更新日を取得する

    3. Linux:コマンドラインから日付を設定

    1. Linuxの日付コマンド

    2. 初心者向けのLinux日付コマンドチュートリアル(8例)

    3. Linux Mint 19 –リリース日、新機能など