Яка команда оновити час та дату з Інтернету


132

Яка команда оновити час та дату з Інтернету? Чи є якась програма, яка дозволяє мені це робити з його інтерфейсу користувача, а не з оболонки?


Чи можете ви визначити, яку версію Ubuntu ви використовуєте?
david6

1
Вам потрібен надзвичайно точний час? (Якщо так, вам потрібно ознайомитися з ntpq і вибрати сервери часу). Якщо ви просто хочете, щоб ваш час був (приблизно) правильним, спробуйте: Налаштування системи >> Час і дата та перевірте, що для параметра " Встановити час " встановлено значення " Автоматично з Інтернету ".
david6

Якщо ви хочете постійно бути дуже точними, встановіть ntpd. Це невеликий процес, який працює у фоновому режимі і постійно налаштовує час замість вибухів / стрибків, але це займе трохи ваших ресурсів.
strugee


1
Це питання сьогодні є надзвичайно важливим. Останнім часом це стає дуже хитро: деякі ПК використовують chrony або ntpd, вони завжди знаходять причину НЕ оновлювати час (годинник занадто неправильний , виграти проблеми, пов’язані з подвійним завантаженням, ntp також може відмовитись від довіри джерелам годин, у яких немає Інтернет). Більше того, якщо у вас ПК з Інтернетом, але неправильний годинник, оскільки зараз браузери та веб-сайти змушують вас використовувати HTTPS, він заблокується, оскільки ваш годинник неправильний, і ви навіть не можете в Google, як це виправити! Було б добре, якби була відповідь, яка стосується всіх справ. "Встановити годинник вручну" є найнадійнішим зараз ...
bct

Відповіді:


144

Ви можете зробити це з , наприклад sudo ntpdate time.nist.gov. Інші сервери включають time.windows.comі т.д.

http://www.pool.ntp.org/ перелічує сервери часу у всьому світі.


5
Я отримую помилкуthe NTP socket is in use, exiting
friederbluemle

7
@friederbluemle Як сказано у цій відповіді , вам потрібно припинити службу ntp sudo service ntp stop. Тоді ви можете скористатися командою, запропонованою у відповіді, і, нарешті, ви можете перезапустити послугу за допомогоюsudo service ntp start
Michele

Це працює, але він не оновлює годинник на панелі завдань автоматично.
posfan12

4
Я отримую помилку "ntpdate [15806]: не знайдено сервера, придатного для синхронізації". Друга відповідь нижче за допомогою google.com працює краще
Кім Стек

7
ntpdate: команда не знайдена
rogerdpack

133

Це хороший маленький код, який я знайшов, щоб оновити ваш час, якщо у вас є проблеми з ntp:

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

Приємне рішення!
Фарид Рн

Дуже приємно, працювали на мене.
Джендерсон Сільва

8
Це має бути прийнята відповідь!
брис

Цей фрагмент пробився до мого арсеналу! ;)
Дейв Аміт

2
Це добре, але зазвичай воно відставатиме від 8 до 50 мс, оскільки воно не синхронізується як таке.
Nonny Moose

48

Станом на 2018 рік із свіжим встановленим Ubuntu 16.04 LTS, запуск sudo ntpdate time.nist.govдає:

sudo: ntpdate: command not found

Це тому, що ( офіційне джерело ):

ntpdateвважається застарілим на користь timedatectlі тому більше не встановлюється за замовчуванням.

Замість цього зробіть це, щоб змусити синхронізацію статися зараз:

sudo timedatectl set-ntp off
sudo timedatectl set-ntp on

У моєму випадку я запускав Ubuntu на virtualbox і врятував стан машини, тож коли я знову запускав копію екземпляра, він не синхронізував годинник, оскільки не було події завантаження для запуску синхронізації. Тож час ще показував, що це було востаннє, коли я запускав віртуальну скриньку.


Я просто перейшов на біонічний і помітив, що ntpdate вже не працює, і timedatectl працював на мене.
капад

1
Це працювало і для мене, на Ubuntu 18.04.
kiamlaluno

Якщо час не змінюється, перевіряйте свій часовий пояс просто timedatectl. Якщо це неправильно, дивіться --helpрозділ команди про те, як змінити її.
Бред Турек

1
Гарний вилов для віртуальної коробки. Врятувало багато головного болю на налагодження!
Мохд Абдул Муджіб

14

Запуск цієї команди в терміналі повинен зробити свою справу

sudo dpkg-reconfigure tzdata

Ви можете додати додаткові часові пояси графічно, я думаю, клацнувши на годиннику та переглянувши його параметри.


Часові зони насправді не такі, як (точний) час. Але також не зовсім зрозуміло, про що запитував і Вікрамеет .
david6

Яка команда оновити час та дату в Інтернеті - це питання, sudo dpkg-переконфігурувати tzdata - це відповідь, і що дає? коментар про часові пояси, пов'язаний з єдиним, що я знаю, що можливо графічно
Jayo

Я припускав, що графічно вони означають графічний (або "GUI") метод, а не географічний (або у всьому світі).
david6

так само я, я не в курсі способу оновити дату і час з допомогою мережі в графічному вигляді , так я використовувати термінал, то , що я дійсно знаю , як зробити графічний встановлено часові пояси, частина про часові пояси була мої два центів на те, що можна зробити, щоб графічно вплинути на час , наскільки я знав, чи я зараз зрозумілий?
Jayo

12

Це дуже просто налаштувати з командного рядка: https://help.ubuntu.com/lts/serverguide/NTP.html З цього посилання:

Ubuntu стандартно поставляється з ntpdate, і він запустить його один раз під час завантаження, щоб налаштувати свій час відповідно до NTP-сервера Ubuntu: ntpdate -s ntp.ubuntu.com

Ось приклад GUI https://help.ubuntu.com/community/UbuntuTime#Time_Synchronization_using_NTP


6
Будь ласка, не використовуйте посилання на інші сайти. Коли вони зникають, так і інформація, яку ви опублікували. Запобігайте виникненню «гниття посилань», відповідаючи на вміст посилання (і надайте кредит там, де належить кредит).
Rinzwind

4

Більшість тут не спрацює, оскільки ntp замінить ваші налаштування протягом декількох секунд.

Спочатку потрібно відключити NTP. У ubuntu це робиться так:

    # Disable ntp
    sudo timedatectl set-ntp 0

Тоді ви можете зробити:

    # Set software clock 
    sudo date --set="2018-04-01 22:22:22"
    # Sync with hardware clock 
    sudo hwclock --systohc

3
dateFromServer=$(curl -v --silent https://google.com/ 2>&1 \
   | grep Date | sed -e 's/< Date: //'); date +"%d%m%Y%H%M%S" -d "$dateFromServer"

або

date -s `curl -I 'https://startpage.com/' 2>/dev/null | grep -i '^date:' | sed 's/^[Dd]ate: //g'`

1
Стандартний спосіб встановлення дати та часу шляхом підключення до серверів часу через ntp. Чому для цього ви використовуєте https-з'єднання?
xiota

1
//, Іноді приємно мати альтернативу стандартному способу, я думаю.
Натан Басанес

2
Мій провайдер блокував мій сервер NTP
Тайлер

1

Вам потрібно встановити ntpпакет. Параметри дати / часу доступні в налаштуваннях системи. Ось додаткова інформація.


2
Посилання мертве ... Як сказав Рінцвінд, "Будь ласка, не використовуйте посилання на інші веб-сайти. Коли вони зникають, так і інформація, яку ви опублікували. Запобігайте виникненню" гниття посилань ", відповідаючи на вміст посилання (і надайте кредит де належить кредит). " Спасибі
Мішель

1

Чи є якась програма, яка дозволяє мені це робити з його інтерфейсу користувача, а не з оболонки?

Я використовую 17.10 і можу перейти в Налаштування (з верхнього правого меню в інтерфейсі)> Деталі> Дата та час. У моєму випадку моя система не оновлювалася з Інтернету, навіть якщо для "Автоматична дата та час" було встановлено значення "УВІМКНЕНО". Я просто змінив його на "OFF", зачекав секунду, а потім змінив його на "ON". Він підбирав поточну дату та час, і мені було добре піти.


0

Завдяки Twiglets [Для маршрутизаторів AsusWRT / Merlin]

Ось альтернатива, яка НЕ ​​встановлює дату !!! [-s варіант]. Виводить «Дата», яку він отримує, і «Дата», встановлену для порівняння.

У AsusWRT / Merlin єдиним, що дивно, є те, що отримана дата є ".... GMT", а утиліта дати встановлює правильний час, але змінює його на "... DST" Навколишнє середовище TZ встановлено на "GMT"

datetext=$(curl -I 'https://1.1.1.1/' 2>/dev/null | grep "Date:" |sed 's/Date: [A-Z][a-z][a-z], //g'| sed 's/\r//') ; echo "Date Retrieved = $datetext" ; echo -n "Date set = " ; date -s "$datetext" -D'%d %b %Y %T %Z'
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.