Як змінити дату та час сервера ubuntu за допомогою командного рядка?


40

Поточна дата та час сервера Ubuntu відрізняються від дати та часу часового поясу. Я спробував використовувати:

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

щоб змінити його, але це не змінило дату та час, просто надрукувавши на терміналі дату та час, які я змінив, але коли я виконав:

sudo hwclock --show

Дата та час ще старі.

Який правильний спосіб змінити дату та час роботи сервера Ubuntu?


ви дійсно набрали "sudo date newdate" - слово "newdate"?
Вольфганг

1
Ні. Я відредагував своє запитання. Я набрав "30 вересня 2015 4:43:42"
Aprilia

Відповіді:


68

Ви можете встановити системну дату за допомогою цієї команди:

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. Чим довше він працює у фоновому режимі, тим точніше час.


1
Я пропустив крок синхронізації годин. Дякую за вашу відповідь, мені це допомогло!
Priska Aprilia

1
3 варіант допомагає, він змінився тощо / timezone =), як php.net/manual/en/timezones.php !!! абсолютно однаковий !!!
Володимир Ч.

@VladimirCh Назви часових поясів Fortunatelly старідаризовані, тому нам не доведеться вносити будь-які налаштування між системами. О, зачекайте ... є і деякі версії Microsoft ...
PeterM

1
Я намагаюся змінити, але це не змінюється: - $ sudo date --set = "2015-09-30 10: 05: 59.990" Ср 30 вересня 10:05:59 +0530 2015 $ дата Чт 23 травня 15:10:37 +0530 2019
Винод

7
  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


1
Найкращий спосіб виправити це без встановлених вручну годин і хвилин! Дуже дякую!
Рафаель Моні

4

Мені не подобається налаштування системного часу вручну. Тому для вирішення цього питання мені довелося поєднувати дві різні відповіді.
Щоб виправити системний час, ви повинні використовувати цей код:

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

як зазначено у цій відповіді.
Потім ви синхронізуєте апаратний годинник із системним годинником за допомогою

sudo hwclock --systohc

як дано @chaos у цій темі.


1

просто введіть

sudo date newdatestring

з новимдоказом у форматі nnddhhmmyyy.ss

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

Але крім команди дата, можливо, ви віддаєте перевагу "рішення" NTP (мережевий протокол часу): Serverguide - NTP , набагато простіше в обробці і точніше, ніж встановлення дати вручну. Ви можете використовувати cronjob або демона ntp (ntpd), щоб оновлювати ваш час кожні х годин / хвилин ...

Сподіваюся, це допомагає!


недійсний діапазон дат, коли я спробував "093005082015.15", який означає 30 вересня 2015, 05:08:15
Aprilia

sudo date "093005082015.15" працює над шахтою.
vusan

0

Для тих, хто шукає версію епох секунд

  1. Встановіть поточну дату та час

    sudo date -s @1565864862
  2. Отримайте поточну дату та час

    date +%s
    

    виходи 1565864862

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.