Установите дату и время из заголовка http в маршрутизаторе с помощью curl или wget

Этот метод должен быть аналогичным или таким же, как у Ubuntu; хотя следующий код не работает на маршрутизаторе. Один из способов заключается в следующем:

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

Результат:

'ate: недопустимая дата' Сб, 12 мая 2018 18:49:18 GMT

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

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

Результаты, которые я получаю, следующие:

@Heyzeus:/tmp/home/root# date -s `curl -I 'https://google.com/' 2>/dev/null | grep -i '^date:' | sed 's/^[Dd]ate: //g'` BusyBox v1.25.1 (2018-05-06 13:19:15 EDT) multi-call binary. Usage: date [OPTIONS] [+FMT] [TIME] Display time (using +FMT), or set time [-s,--set] TIME Set time to TIME -u,--utc Work in UTC (don't convert to local time) -R,--rfc-2822 Output RFC-2822 compliant date string -I[SPEC] Output ISO-8601 compliant date string SPEC='date' (default) for date only, 'hours', 'minutes', or 'seconds' for date and time to the indicated precision -r,--reference FILE Display last modification time of FILE -d,--date TIME Display TIME, not 'now' -D FMT Use FMT for -d TIME conversion Recognized TIME formats: hh:mm[:ss] [YYYY.]MM.DD-hh:mm[:ss] YYYY-MM-DD hh:mm[:ss] [[[[[YY]YY]MM]DD]hh]mm[.ss] 'date TIME' form accepts MMDDhhmm[[YY]YY][.ss] instead

Другой

'ate: недействительная дата' Sat , 12 мая 2018 18:49:18 GMT

результаты: дата: неверная дата '13 мая 2018 22:46:44 '

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

Время, прошедшее с первых двух результатов, например:« Сб, 12 мая 2018 18:49:18 GMT "и date -s требует чего-то большего, чем 2018-05-12 18:49:18 Или как указано в разделе« распознанные временные форматы ».

1
задан 14 May 2018 в 01:55

2 ответа

Спасибо Twiglets

Вот альтернатива, которая задает дату !!! [-s option]. Распечатывает «Дата», которую он извлекает, и amp; «Дата», установленная для сравнения.

Это работает на AsusWRT / Merlin, единственное, что нечетно, - это то, что полученная дата «.... GMT», а утилита date устанавливает исправить время, но изменить его на «... 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'
0
ответ дан 17 July 2018 в 14:27

Спасибо Twiglets

Вот альтернатива, которая задает дату !!! [-s option]. Распечатывает «Дата», которую он извлекает, и amp; «Дата», установленная для сравнения.

Это работает на AsusWRT / Merlin, единственное, что нечетно, - это то, что полученная дата «.... GMT», а утилита date устанавливает исправить время, но изменить его на «... 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'
0
ответ дан 20 July 2018 в 14:31

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

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