Muszę tylko tymczasowo ustawić datę. Prowadzę to
date 051918002010.00
i przykleja się tylko przez około 5 sekund. Następnie synchronizuje się z serwerem czasu. Próbowałem:
ps aux | grep ntp
ale nic tam nie ma.
Potrzebuję teraz poprawnej odpowiedzi, później bardziej szczegółowej odpowiedzi :)
Edycja: Jak szybko odkryli autorzy odpowiedzi, moje Ubuntu działa w VirtualBox, co okazało się odpowiednie dla niektórych wersji odpowiedzi. Dziękuję wszystkim.
ubuntu
virtualbox
sync
time
Dan Rosenstark
źródło
źródło
Odpowiedzi:
Wygląda na to, że naprawdę szukasz sposobu na uruchomienie programu, aby program uznał, że działa on pod inną datą i godziną.
Pytanie o to zostało zadane wcześniej: analog Linux RunAsDate? Poniżej znajduje się odpowiedź, którą tam podałem. Zauważ, że próbujesz wybrać opcję 3.
ntpdate
Pakiet nie jest demonem i powinno nie być aktualizowania czasu systemowego automatycznie (powinien działać od razu na starcie i nie więcej). Nie znam się zbytnio na VirtualBox, ale domyślam się, że maszntpd
zainstalowany lub Dodatki dla gości VirtualBox synchronizują czas bezpośrednio z systemu operacyjnego hosta, w takim przypadku musisz je wyłączyć lub użyć jednego z biblioteki opakowań wymienione poniżej w Opcji 2.Aktualizacja : Wygląda na to, że zainstalowano Dodatki dla gości VirtualBox
/usr/sbin/vboxadd-timesync
- Domyślam się, że jest to plik wykonywalny, który synchronizuje zegar gościa z zegarem hosta. Sprawdź, czy jest zainstalowany skrypt startowy (ewentualnie/etc/init.d/vboxadd-timesync
); jeśli tak, możesz zatrzymać synchronizację zsudo /etc/init.d/vboxadd-timesync stop
. Jeśli nie ma skryptu uruchamiania, prawdopodobnie możesz po prostukill
sam proces.Co RunAsDate robi jest następujący:
Pod Linuksem masz kilka opcji, aby osiągnąć to samo:
Jeśli możesz uzyskać wersję programu dla systemu Windows, możesz być w stanie uruchomić RunAsDate w Wine (ale uważaj na najnowszy błąd ).
Znajdź bibliotekę opakowań, aby to zrobić, lub napisz własną. Niektóre opcje podano poniżej.
Użyj maszyny wirtualnej. Jest to przesada, ale ponieważ system operacyjny w maszynie wirtualnej gościa jest całkowicie oddzielony od hosta bazowego, możesz ustawić czas systemowy na coś zupełnie innego. Konfiguracja może być szybsza niż w przypadku innych opcji.
Opcję 2 można osiągnąć różnymi metodami, w zależności od tego, co próbujesz uruchomić. Odpowiedź DaveParillo poniżej prowadzi do metody DIY, która wyjaśnia różne metody i zawiera kod pliku wykonywalnego. Niektóre inne opcje obejmują:
datefudge
, dostępne w repozytoriach Debian / Ubuntu i innych miejscach.Moduł Perla Time-Fake , także w repozytoriach Debiana jako pakiet
libtime-fake-perl
.FakeTime Preload Library (alias
libfaketime
, freshmeat link ), biblioteka, która może przechwytywać wywołania systemowe w dynamicznie połączonych plikach binarnych. Dostępne w repozytoriach Debiana dla Squeeze i Sid.źródło
Ponieważ odpowiedź na komentarz do Dana McGa wydaje się wskazywać, że używasz Ubuntu jako gościa VirtualBox, jeśli zainstalowałeś dodatki dla gości VirtualBox, wówczas automatycznie zsynchronizują czas gościa z czasem hosta.
powinien pokazać działającą usługę dodawania gości VirtualBox.
Następnie możesz spróbować:
zatrzymać go do momentu ponownego uruchomienia.
źródło
Szybka odpowiedź: rozłącz połączenie sieciowe :)
źródło
Możesz także spojrzeć na „ libfaketime ”, które jest zawarte w Ubuntu / Debian.
Pozwala sfałszować czas systemowy dla programu bez konieczności zmiany czasu całego systemu (przechwytując wywołania systemowe za pomocą LD_PRELOAD)
źródło
Możesz uruchomić
VBoxManage setextradata <guest-vm-name> "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1
w systemie operacyjnym hosta, aby wyłączyć automatyczną synchronizację czasu.źródło