Как изменить дату и время сервера сервера ubuntu через командную строку?

22

Текущая дата и время сервера Ubuntu отличается от даты и времени часового пояса. Я пробовал использовать:

sudo date "30 Sep 2015 4:43:42"

, чтобы изменить его, но он не изменил дату и время, просто напечатал на терминале дату и время, которые я изменил, но когда я выполнил:

sudo hwclock --show

Дата и время все еще старые.

Каков правильный способ изменения даты и времени сервера Ubuntu?

    
задан Priska Aprilia 30.09.2015 в 09:51
источник

3 ответа

44

Вы можете установить системную дату с помощью этой команды:

sudo date --set="2015-09-30 10:05:59.990"

Затем, когда используется date , оно должно быть правильно показано.

Теперь вы должны также установить аппаратное время в BIOS системы, чтобы этот параметр сохранялся при перезагрузке (при запуске системного времени установлено значение аппаратных часов). Сделайте это с помощью hwclock :

sudo hwclock --systohc

Это получает значение системных часов (sys) и устанавливает аппаратные часы (hc). Проверьте его с помощью команды hwclock . Оба hwclock и date теперь должны показывать те же дату и время.

Чтобы установить часовой пояс , вы можете использовать эту команду:

sudo dpkg-reconfigure tzdata

BTW . Если вы используете этот компьютер в качестве сервера, я настоятельно рекомендую использовать NTP-клиент для синхронизации времени по сети . Таким образом, вы можете гарантировать, что все ваши серверы имеют точно такое же время. Это позволит синхронизировать время во время работы машины. Если у вас есть приложения, зависящие от синхронизированного времени по серверу, я рекомендую NTP-Daemon. Чем дольше он работает в фоновом режиме, тем точнее время.

    
ответ дан chaos 30.09.2015 в 10:11
источник
1

просто введите

sudo date newdatestring

с newdatestring в формате nnddhhmmyyyy.ss

  • nn: (двухзначный) месяц (от 01 до 12)
  • dd: день (двухзначный) (с 01 по 31), с регулярными правилами для дней в зависимости от месяца и года с использованием
  • hh: (двухзначный) час (от 00 до 23)
  • mm: (две цифры) минуты (от 00 до 59)
  • yyyy: год; это может быть две цифры или четыре цифры
  • ss - две цифры секунд (от 00 до 59). Обратите внимание на период «.» Перед ss.

Но помимо команды date, возможно, вы предпочитаете NTP-решение (протокол сетевого времени): Serverguide - NTP , гораздо проще обрабатывать и точнее, чем устанавливать дату вручную. Вы можете использовать cronjob или ntp daemon (ntpd), чтобы обновлять ваше время каждые x часов / минут ...

Надеюсь, это поможет!

    
ответ дан Wolfgang 30.09.2015 в 10:00
0

Мне не нравится устанавливать системное время вручную. Поэтому, чтобы исправить эту проблему, мне пришлось объединить два разных ответа.
Чтобы исправить системное время, вы должны использовать этот код:

sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"

, как указано в этом ответе
Затем вы синхронизируете аппаратные часы с системными часами, используя

sudo hwclock --systohc

, заданный @chaos в этом потоке.

    
ответ дан twitu 18.01.2018 в 07:26