限られたビジボックス(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​​のプロキシの場合、ビジーボックスにTelnetがある場合は試してみてください。

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

sleep コマンドはおおよそのもので、Telnet が接続を早期に終了するのを防ぎます。

たとえば、サポートしていないhttpsにリダイレクトせずにこれがまだ機能していることに驚きましたbusybox wget。ただし、まだリダイレクトされた日付を取得できます。

おすすめ記事