![제한된 비지박스(ntp 없음)를 사용하여 임베디드 Linux에서 날짜 설정](https://linux55.com/image/146241/%EC%A0%9C%ED%95%9C%EB%90%9C%20%EB%B9%84%EC%A7%80%EB%B0%95%EC%8A%A4(ntp%20%EC%97%86%EC%9D%8C)%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%9E%84%EB%B2%A0%EB%94%94%EB%93%9C%20Linux%EC%97%90%EC%84%9C%20%EB%82%A0%EC%A7%9C%20%EC%84%A4%EC%A0%95.png)
비지박스가 있는 임베디드 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
. 그러나 여전히 리디렉션된 날짜를 얻을 수 있습니다.