Что такое команда для обновления времени и даты из интернета

133

Какая команда для обновления времени и даты из интернета? Есть ли приложение, которое позволяет мне делать это из своего пользовательского интерфейса, а не из оболочки?

Vikramjeet
источник
Можете ли вы определить, какую версию Ubuntu вы используете?
Давид6
1
Вам нужно очень точное время? (Если это так, вам нужно ознакомиться с ntpq и выбрать серверы времени). Если вы просто хотите, чтобы ваше время было (приблизительно) правильным, попробуйте: Системные настройки >> Время и дата и убедитесь, что для параметра « Установить время » установлено значение « Автоматически из Интернета ».
Давид6
Если вы хотите постоянно быть предельно точным, установите ntpd. Это небольшой процесс, который выполняется в фоновом режиме и постоянно регулирует время вместо всплесков / скачков, но он потребует немного ваших ресурсов.
Струджи
1
Этот вопрос в настоящее время имеет решающее значение. В последнее время это стало очень сложно: некоторые ПК используют chrony или ntpd, они всегда находят причину НЕ обновлять время (часы работают неправильно , проблемы с двойной загрузкой, ntp может также отказаться доверять источникам синхронизации, которые не имеют интернет). Более того, если у вас есть компьютер с интернетом, но неправильные часы, так как теперь браузеры и веб-сайты вынуждают вас использовать HTTPS, он будет блокироваться, потому что ваши часы неправильные, и вы даже не можете гуглить, как это исправить! Было бы хорошо, если бы был ответ, который касается всех случаев. «Установите часы вручную» самый надежный один сейчас ...
BCT

Ответы:

145

Вы можете сделать это, например, с 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
134

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

sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"
Шрукул Хабиб
источник
Отличное решение!
Фарид Rn
Очень хорошо, работал для меня.
Джандерсон Сильва
8
Это должен быть принятый ответ!
Brijs
Этот фрагмент попал в мой арсенал! ;)
Дэйв Амит
2
Это хорошо, но обычно отстает от 8 до 50 мс, так как не синхронизируется как таковой.
Нонни Мус
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 в виртуальной коробке и сохранил состояние компьютера, поэтому при повторном запуске экземпляра он не синхронизировался автоматически, поскольку не было события загрузки, запускающего синхронизацию. Так что время все еще показывало, что это был последний раз, когда я запускал виртуальную коробку.

пользователь
источник
Я просто обновился до бионического и заметил, что ntpdate больше не работает, а timedatectl работает для меня.
Капад
1
У меня это тоже сработало, на Ubuntu 18.04.
kiamlaluno
Если время не меняется, проверьте часовой пояс с помощью всего timedatectl. Если это не так, см. --helpРаздел для команды о том, как его изменить.
Брэд Турек
1
Хороший улов для Виртуальной Коробки. Сохранено много отладочной головной боли!
Мохд Абдул Муджиб
14

Выполнение этой команды в терминале должно помочь

sudo dpkg-reconfigure tzdata

Я думаю, что вы можете добавлять дополнительные часовые пояса графически, нажимая на часы и просматривая их параметры.

Jayo
источник
Часовые пояса на самом деле не совпадают с (точным) временем. Но также не очень понятно, о чем просил Викрамджит .
Давид6
Какая команда для обновления времени и даты из Интернета - вопрос, sudo dpkg -configure tzdata - ответ, так что же дает? комментарий о часовых поясах связан с единственной вещью, которую я знаю, возможной графически
Jayo
Я предположил, что под графически они подразумевают графический (или «GUI») метод, а НЕ географический (или во всем мире).
Давид6
так же я, я не в курсе способа обновить дату и время с помощью сети в графическом виде , так я использовать терминал, то , что я действительно знаю , как сделать графический установлено часовые пояса, часть о часовых поясах была мои два центов на том, что можно сделать, чтобы графически воздействовать на время , насколько я знал, я теперь понял?
Джайо
12

Это очень легко настроить из командной строки: https://help.ubuntu.com/lts/serverguide/NTP.html По этой ссылке:

Ubuntu поставляется с ntpdate в стандартной комплектации и запускает его один раз во время загрузки, чтобы настроить время в соответствии с NTP-сервером Ubuntu: ntpdate -s ntp.ubuntu.com

Вот пример графического интерфейса пользователя 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
momomo
источник
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пакет. Настройки даты / времени доступны в системных настройках. Вот еще немного информации.

tohuwawohu
источник
2
Ссылка устарела ... Как сказал Ринцвинд: «Пожалуйста, не используйте ссылки на другие сайты. Когда они исчезают, информация, которую вы размещали, также пропадает. где кредит должен). " Спасибо
Микеле
1

Есть ли приложение, которое позволяет мне делать это из своего пользовательского интерфейса, а не из оболочки?

Я использую 17.10 и могу зайти в «Настройки» (в верхнем правом меню пользовательского интерфейса)> «Детали»> «Дата и время». В моем случае моя система не обновлялась из Интернета, хотя для «Автоматическая дата и время» было установлено значение «ВКЛ». Я просто изменил его на «ВЫКЛ», подождал секунду, а затем снова переключил на «ВКЛ». Он взял текущую дату и время, и мне было хорошо идти.

Джейсон У. Пегг
источник
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'
Тайлер
источник