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

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

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

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

sudo hwclock --show

Дата и время является все еще старой.

Что корректный путь состоит в том, чтобы изменить дату и время Сервера Ubuntu?

40
задан 30 September 2015 в 01:14

7 ответов

Можно установить системную дату с этой командой:

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

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

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

sudo hwclock --systohc

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


Для установки часового пояса можно использовать эту команду:

sudo dpkg-reconfigure tzdata

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

68
ответ дан 23 November 2019 в 00:08
  1. Поиск Вашего часового пояса
timedatectl list-timezones
  1. Набор Ваш часовой пояс
sudo timedatectl set-timezone America/Toronto
  1. Включает timesyncd
sudo timedatectl set-ntp on

С этим, время должно устанавливаться и синхронизироваться.

Вы видите больше на этом учебном руководстве: https://www.digitalocean.com/community/tutorials/how-to-set-up-time-synchronization-on-ubuntu-18-04

7
ответ дан 23 November 2019 в 00:08

Поскольку те, которые ищут версию

  1. секунд эпохи, Назначают текущую дату, и время

    sudo date -s @1565864862
    
  2. Получают текущую дату и время

    date +%s
    

    выводы 1565864862

0
ответ дан 23 November 2019 в 00:08

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

sudo date newdatestring

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

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

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

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

1
ответ дан 23 November 2019 в 00:08

Мне не нравится устанавливать системное время вручную. Таким образом для устранения этой проблемы я должен был объединить два различных ответа.
Для фиксации системного времени, необходимо использовать этот код:

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

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

sudo hwclock --systohc

как дано @chaos в этом потоке.

4
ответ дан 23 November 2019 в 00:08

Мне помогли:


1 - шаг (подготовка)

 timedatectl set-local-rtc 0
 sudo timedatectl set-ntp 1
 sudo hwclock --systohc
 sudo timedatectl set-ntp 0


2 - шаг (установить дату и время)

sudo timedatectl set-time "06:24:00"
sudo timedatectl set-time "2020-04-23"
sudo hwclock --systohc

или

sudo date --set="2020-04-23 06:24:25.990"
sudo hwclock --systohc


3 - шаг (проверить дату и время)

timedatectl

1
ответ дан 9 April 2020 в 13:15

Я использую серверы на основе Ubuntu на Amazon AWS. Все ответы SUDO DATE НЕ РАБОТАЛИ для меня. SUDO DATE возвращает новую дату в качестве выходных данных, но последующие вызовы DATE по-прежнему показывают старую дату. Кроме того, HWCLOCK ничего не делал, кроме как возвращал ошибку.

Мне ответили так:

sudo timedatectl set-ntp false

sudo timedatectl set-time "строка-дата-время"

3
ответ дан 2 January 2021 в 02:36

Другие вопросы по тегам:

Похожие вопросы: