GNU/Linux >> Znalost Linux >  >> Linux

Linux runasdate analog

RunAsDate dělá následující:

RunAsDate zachytí volání rozhraní API jádra, která vrátí aktuální datum a čas (GetSystemTime, GetLocalTime, GetSystemTimeAsFileTime) a nahradí aktuální datum/čas vámi zadaným datem/časem.

V Linuxu máte několik možností, jak dosáhnout stejné věci:

  1. Pokud můžete získat verzi programu pro Windows, možná budete moci spustit RunAsDate pod Wine (ale pozor na nedávnou chybu).

  2. Najděte si k tomu knihovnu wrapperů nebo si napište vlastní. Některé možnosti jsou uvedeny níže.

  3. Použijte virtuální stroj. To je přehnané, ale protože OS v hostujícím virtuálním počítači je zcela oddělený od základního hostitele, můžete nastavit jeho systémový čas na něco úplně jiného. Nastavení může být rychlejší než ostatní možnosti.

Možnost 2 lze provést různými metodami v závislosti na tom, co se pokoušíte spustit. Níže uvedená odpověď DaveParilla odkazuje na DIY přístup, který vysvětluje různé metody a zahrnuje kód pro spustitelný soubor. Některé další možnosti zahrnují:

  • datefudge , k dispozici v repozitářích Debian/Ubuntu a na dalších místech.

  • Time-Fake perl modul, také v repozitářích Debianu jako balíček libtime-fake-perl .

  • FakeTime Preload Library (také znám jako libfaketime , freshmeat link), knihovna, která dokáže zachytit systémová volání v dynamicky propojených binárních souborech. Dostupné v repozitářích Debianu pro Squeeze a Sid.


Měl jsem stejný problém při hledání alternativy k RunAsDate v Linuxu Ubuntu a dospěl jsem k tomuto řešení.

Vytvořil jsem spouštěč programu, který chci používat s RunAsDate. Pokud se software, který chcete používat, jmenuje Foo, vytvořte na ploše soubor s názvem Foo.desktop a upravte jej pomocí gedit nebo podobného textového editoru. Poté do něj přidejte následující řádky kódu:

[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

Stačí změnit název, komentář a ikonu podle vašich skutečných zdrojů.

Možnost Exec změní systémové datum pro relaci, když používáte aplikaci, a po jejím dokončení se systémové datum automaticky znovu synchronizuje.


Linux
  1. Jak zkontrolovat časové pásmo v Linuxu

  2. 8 Příklady příkazů rychlého data v Linuxu

  3. Příklady příkazů date v Linuxu

  1. Linux – Jak zjistit datum vytvoření souboru?

  2. Získejte datum poslední změny souboru v Linuxu

  3. Linux:nastavte datum pomocí příkazového řádku

  1. Příkaz Date v Linuxu

  2. Linux Date Command Tutorial pro začátečníky (8 příkladů)

  3. Linux Mint 19 – datum vydání, nové funkce a další