Jotta voin ratkaista tietyn aikavyöhykkeeseen liittyvän virheen ohjelmistoprojektissa, jonka kanssa työskentelen, yritän toistaa muutoksen järjestelmässä. s kello tarkistaaksesi ohjelmistokäyttäytymisen timedatectl -toiminnolla.

Yritän saavuttaa tämän suorittamalla

timedatectl set-timezone America/New_York timedatectl set-local-rtc 1 timedatectl set-ntp false timedatectl set-time "2017-03-12 01:58:50" && hwclock -w 

Kun teen niin ja suoritan timedatectl heti sen jälkeen, saan odotetun seuraavan ajan:

Local time: Sun 2017-03-12 01:58:51 EST Universal time: Sun 2017-03-12 06:58:51 UTC RTC time: Sun 2017-03-12 01:58:51 Time zone: America/New_York (EST, -0500) System clock synchronized: no systemd-timesyncd.service active: no RTC in local TZ: yes 

Kuitenkin 10 sekuntia tämän jälkeen, kun minuutti muuttuu (arvoksi xx:59), paikallinen ja yleinen aika ”uudelleenkäynnistetään” nykyiseen aikaan

Local time: Wed 2019-08-07 21:01:41 EDT Universal time: Thu 2019-08-08 01:01:41 UTC RTC time: Sun 2017-03-12 01:58:57 Time zone: America/New_York (EDT, -0400) System clock synchronized: no systemd-timesyncd.service active: no RTC in local TZ: yes 

Mitä minulta puuttuu täällä?

Asennukseni on Vagrant Ubuntu 18 VM (Linux-vagrant 4.15.0-51 / vm -ruutu ”bento / ubuntu-18.04”).

Kommentit

  • Saatat huomata, että virtuaalikoneesi aika on synkronoitu isäntänne ' s kanssa. Ei tunne Vagrantia, joten ' ei voi ohjata sinua ratkaisuun.

Vastaa

Tämä ei selitä näkemääsi käyttäytymistä, mutta sen pitäisi vastata otsikossa olevaan kysymykseen.

Järjestelmän ajan muuttamisen sijaan voit käyttää työkalua, kuten faketime ja ympäristömuuttuja TZ:

$ date; faketime -f -15d date; TZ=America/New_York faketime -f -15d date Thu 8 Aug 10:21:13 CEST 2019 Wed 24 Jul 10:21:13 CEST 2019 Wed 24 Jul 04:21:13 EDT 2019 

Tämän avulla voit suorittaa ohjelman omalla aikavyöhykkeellään, päivämäärällä ja kellonaikalla vaikuttamatta muuhun järjestelmään.

Huomaa, että koska se käyttää $LD_PRELOAD -hakkerointia koodin injektoimiseksi sovelluksiin, se ei toimi staattisesti linkitettyjen suoritettavien tiedostojen tai setuid / setgid-suoritettavien tiedostojen kohdalla.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *