我试图在带有 busybox 的嵌入式 Linux 上启动后自动设置日期(我没有 RTC)。我ntp
在 busybox 和curl 中也没有命令。我的wget
也很有限,我似乎无法用它获得标题。
我见过多种使用curl
或wget
解析 google.com 标头来获取当前日期的方法。
但是我的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 shell,没有 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 的代理,如果你的 busybox 有 telnet,你可以尝试
( echo 'HEAD http://www.google.com/ HTTP/1.0'
echo
sleep 2 ) |
busybox telnet localhost 8000 |
grep 'Date:'
其中 sleep 命令是近似的,并阻止 telnet 过早关闭连接。
我很惊讶这在没有重定向到 https 的情况下仍然有效,例如,它busybox wget
不支持。不过,您仍然可以获得重定向的日期。