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

На моем ПК RTC не работает, поэтому я хочу Date & amp; Time from server с помощью команды curl или есть какие-либо возможности для получения даты и времени без RTC на ПК. Требуемый формат для даты и времени - DDMMYYYYHHMMSS.

1
задан 13 July 2017 в 15:50

2 ответа

Если вы должны получить время с удаленного сервера, используйте NTP-сервер.

Например:

$ ntpq -c 'rv 0 clock' localhost
clock=da8b6fe7.ae195287  Thu, Mar 10 2016  9:30:39.680

Значение clock - это метка времени NTP в гексагон (эпоха 01.01.1900). Вы можете обработать его немного, чтобы получить временную метку Unix, которую вы затем можете использовать с помощью date:

$ ntpq -c raw -c 'rv 0 clock' localhost
Output set to raw
clock=0xda8b775d.ee94c630
$ ntpq -c raw -c 'rv 0 clock' localhost | gawk -F '[ =.]' --non-decimal-data 'NR==2{printf "@%d.%d\n", $2 - 2209075200, "0x"$3}'
@1457497973.4177870717
$ ntpq -c raw -c 'rv 0 clock' localhost | gawk -F '[=.]' --non-decimal-data 'NR==2{printf "@%d.%d\n", $2 - 2209075200, "0x"$3}' | xargs date +'%d%m%Y%H%M%S' -d 
09032016100323

В моем случае у меня есть демон NTP, запущенный локально, на который я мог запросить, использование localhost. Вместо этого вы можете использовать один из многих открытых NTP-серверов, например ntp.ubuntu.com.

Команда awk считывает строку, разделяет ее на = и ., так что три поля: clock, целая часть метки времени и дробная часть. Затем он вычитает 2209075200 (разность между секундами между эпохами Unix и NTP, полученными из этой SO-почты) из целочисленной части и печатает обе части в десятичной форме.

1
ответ дан 23 May 2018 в 13:08

Получить дату из заголовка ответа HTTP. Удалите беспорядок. Установите дату.

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

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

0
ответ дан 23 May 2018 в 13:08

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

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