GNU/Linux >> Linux Esercitazione >  >> Linux

Analogo runasdate di Linux

Quello che fa RunAsDate è quanto segue:

RunAsDate intercetta le chiamate API del kernel che restituiscono la data e l'ora correnti (GetSystemTime, GetLocalTime, GetSystemTimeAsFileTime) e sostituisce la data/ora corrente con la data/ora specificata.

Sotto Linux hai alcune opzioni per ottenere la stessa cosa:

  1. Se riesci a ottenere una versione Windows del programma, potresti essere in grado di eseguire RunAsDate sotto Wine (ma fai attenzione a un bug recente).

  2. Trova una libreria wrapper per farlo o scrivi la tua. Di seguito sono riportate alcune opzioni.

  3. Usa una macchina virtuale. Questo è eccessivo, ma poiché un sistema operativo nella VM guest è completamente separato dall'host sottostante, puoi impostare l'ora di sistema su qualcosa di completamente diverso. Potrebbe essere più veloce da configurare rispetto alle altre opzioni.

L'opzione 2 può essere eseguita con metodi diversi, a seconda di ciò che si sta tentando di eseguire. La risposta di DaveParillo di seguito si collega a un approccio fai-da-te che spiega i diversi metodi e include il codice per un eseguibile. Alcune altre opzioni includono:

  • datefudge , disponibile nei repository Debian/Ubuntu e in altri luoghi.

  • Modulo perl Time-Fake, anche nei repository Debian come pacchetto libtime-fake-perl .

  • FakeTime Preload Library (alias libfaketime , freshmeat link), una libreria in grado di intercettare le chiamate di sistema nei binari collegati dinamicamente. Disponibile nei repository Debian per Squeeze e Sid.


Ho avuto lo stesso problema nel trovare un'alternativa a RunAsDate in Linux Ubuntu e sono arrivato a questa soluzione.

Ho creato un launcher del programma che voglio utilizzare con RunAsDate. Se il software che desideri utilizzare si chiama Foo, crea un file sul desktop chiamato Foo.desktop e modificalo utilizzando gedit o un editor di testo simile. Quindi aggiungi ad esso le seguenti righe di codice:

[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

Devi solo cambiare le informazioni su nome, commento e icona con le tue risorse effettive.

L'opzione Exec cambia la data di sistema per la sessione mentre stai usando l'applicazione, poi quando hai finito risincronizza automaticamente la data di sistema.


Linux
  1. Come controllare il fuso orario in Linux

  2. 8 Esempi di comandi Quick Date in Linux

  3. Tutorial sul comando della data di Linux per principianti (8 esempi)

  4. Ottieni la data dell'ultima modifica del file in Linux

  5. Linux:imposta la data tramite la riga di comando

11 Esempi utili di comandi data di Linux

Come impostare data e ora su Linux

7 Esempi di comando Date in Linux

Esempi di comandi data di Linux

12 Esempi utili di comandi data di Linux

Come mantenere aggiornato Rocky Linux 8