제한된 비지박스(ntp 없음)를 사용하여 임베디드 Linux에서 날짜 설정

제한된 비지박스(ntp 없음)를 사용하여 임베디드 Linux에서 날짜 설정

비지박스가 있는 임베디드 Linux에서 부팅 후 자동으로 날짜를 설정하려고 합니다(RTC가 없습니다). 나는 ntpbusybox와 컬에도 명령이 없습니다. 내 것도 wget매우 제한적이어서 타이틀을 얻을 수 없는 것 같습니다.

현재 날짜를 얻기 위해 google.com 헤더를 사용하거나 구문 분석하는 curl여러 가지 방법을 보았습니다 .wget

하지만 내 wget명령은 옵션을 지원하지 않습니다 --server-response.

BusyBox v1.21.0 (2014-11-25 08:52:04 CET) multi-call binary.

Usage: wget [-c|--continue] [-s|--spider] [-q|--quiet] [-O|--output-document FILE]
        [--header 'header: value'] [-Y|--proxy on/off] [-P DIR]
        [-U|--user-agent AGENT] [-T SEC] URL...

Retrieve files via HTTP or FTP

        -s      Spider mode - only check file existence
        -c      Continue retrieval of aborted transfer
        -q      Quiet
        -P DIR  Save to DIR (default .)
        -T SEC  Network read timeout is SEC seconds
        -O FILE Save to FILE ('-' for stdout)
        -U STR  Use STR for User-Agent header
        -Y      Use proxy ('on' or 'off')

이 솔루션이 어딘가에 있지만 POSIX 쉘만 있고 bash는 없으므로 작동하지 않습니다( can't create /dev/tcp/www.google.com/80: nonexistent directory).

#!/bin/bash
exec 5<>/dev/tcp/www.google.com/80
cat mypostfile >&5
cat <&5 # reply

busybox를 사용하여 시스템 시계를 설정할 수 있도록 어딘가에서 현재 날짜를 검색할 수 있는 아이디어가 있습니까?

감사합니다!

답변1

로컬 호스트 포트 8000의 프록시의 경우 비지박스에 텔넷이 있으면 시도해 볼 수 있습니다.

( echo 'HEAD http://www.google.com/ HTTP/1.0'
  echo
  sleep 2 ) |
busybox telnet localhost 8000 |
grep 'Date:'

sleep 명령은 대략적인 것이며 텔넷이 연결을 조기에 종료하는 것을 방지합니다.

예를 들어 지원하지 않는 https로 리디렉션하지 않고도 이것이 여전히 작동한다는 것에 놀랐습니다 busybox wget. 그러나 여전히 리디렉션된 날짜를 얻을 수 있습니다.

관련 정보