Вот мой сценарий: я запускаю несколько виртуальных машин на своей рабочей станции для имитации производственной среды. В конце дня я сплю свою рабочую станцию (с моими виртуальными машинами, работающими в фоновом режиме) в 18:00. Когда я возвращаюсь в офис на следующее утро в 8 утра и разбужу рабочую станцию, все мои виртуальные машины работают в 6 вечера.
Устал от сброса NTP или просто не забыл принудительно обновить, я поместил следующее в 5-минутный cron
service ntp stop && ntpd -gq && service ntp start
Вот мой /etc/ntp.conf
tinker panic 0
driftfile /var/lib/ntp/ntp.drift
logfile /var/log/ntpd.log
# Enable this if you want statistics to be logged.
#statsdir /var/log/ntpstats/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
# Specify one or more NTP servers.
# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.
server 0.ubuntu.pool.ntp.org
server 1.ubuntu.pool.ntp.org
server 2.ubuntu.pool.ntp.org
server 3.ubuntu.pool.ntp.org
# Use Ubuntu's ntp server as a fallback.
server ntp.ubuntu.com
# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for
# details. The web page <http://support.ntp.org/bin/view/Support/AccessRestrictions>
# might also be helpful.
#
# Note that "restrict" applies to both servers and clients, so a configuration
# that might be intended to block requests from certain clients could also end
# up blocking replies from your own upstream servers.
# By default, exchange time with everybody, but don't allow configuration.
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1
# Clients from this (example!) subnet have unlimited access, but only if
# cryptographically authenticated.
#restrict 192.168.123.0 mask 255.255.255.0 notrust
# If you want to provide time to your local subnet, change the next line.
# (Again, the address is an example only.)
#broadcast 192.168.123.255
# If you want to listen to time broadcasts on your local subnet, de-comment the
# next lines. Please do this only if you trust everybody on the network!
#disable auth
#broadcastclient
Есть ли лучший способ добиться этого?
Если вы используете VMware Workstation (или VMware vSphere), есть конкретные способы обработки хронометража на ваших (Linux) виртуальных машинах. Однако этого недостаточно для вашего сна. NTP внутри гостевой системы здесь не помогает.
Вам абсолютно необходимо установить гостевые инструменты VMware на гостевых виртуальных машинах и убедитесь, что на хосте работает NTP. Это устранит проблему со сном и дрейф, возникающий при отстранении гостя.
Редактировать:
О, это Ubuntu ... Я считаю, что многие пользователи Ubuntu не устанавливают собственный набор инструментов VMware. Вот шаги (и видео) для этого.
С помощью iburst
также поможет установить часы быстрее, но это эффективно только при запуске службы.
Большинство приложений, вероятно, захотят указать iburst вариант с серверной командой. С помощью этой опции происходит обмен сообщениями для обработки данных и установки часов примерно за десять секунд.
Вам нужно будет найти способ перезапустить службу при возобновлении APCI. (Вы можете попробовать это.)
Ваш ntp.conf должен работать! Я обнаружил, что иногда ntpd требуется довольно много времени, чтобы исправить существенную разницу во времени. (Я видел, что на корректировку уходит более 12 часов).
Вы должны обнаружить, что если вы оставите его на ночь (без работы cron), он в конечном итоге исправится сам.