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

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

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

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

sudo hwclock --show

Дата и время по-прежнему остаются прежними.

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

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

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

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

  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

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

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

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

sudo hwclock --systohc

как указано @chaos в этой теме.

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

Ответом для меня было:

sudo timedatectl set-ntp false

sudo timedatectl set-time "date-time-string"

Мне помогли:


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

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

sudo date newdatestring

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

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

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

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

Для тех, кто ищет версию epoch seconds

  1. Установите текущую дату и время

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

    date +%s

    выходы 1565864862

Нет. Я отредактировал свой вопрос. Я набрал “30 сентября 2015 4:43:42”

вы действительно набрали “sudo date newdate” - слово “newdate”?