비지박스가 있는 임베디드 Linux에서 부팅 후 자동으로 날짜를 설정하려고 합니다(RTC가 없습니다). 나는 ntp
busybox와 컬에도 명령이 없습니다. 내 것도 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
. 그러나 여전히 리디렉션된 날짜를 얻을 수 있습니다.