Armadilloフォーラム

コンテナ内からREST APIを使用した時刻設定

k.sato

2024年4月2日 11時52分

佐藤です。

お世話になっております。

ネットワーク設定やNTP設定などはコンテナ内からREST APIを使用して行えるのですが時刻設定だけ失敗します。

・時刻を強制的に設定する
POST "/api/time/set"

/# curl -k -H "$PATH" -X POST https://127.0.0.1:58080/api/time/set -d "timestamp=$(date --date "2024/04/02 12:00:00" +%s)"
date: invalid date '2024/04/02 12:00:00'
{"error":"Command [\"time_setup.sh\", \"sync\", \"\"] failed with exit status: 1:\nstderr:\ndate: invalid date '@'\nCould not set time to \n\nstdout:\n"}/ # dat
e

ATDE上からは同じ様なコマンドを送って時刻設定できます。

atmark@atde9:~$ curl -k -H "$PATH" -X POST https://armadillo.local:58080/api/time/set -d "timestamp=$(date --date "2024/04/02 12:00:00" +%s)"

これは何がおかしいのでしょうか?

以上、よろしくお願い致します。

コメント

at_dominique.m…

2024年4月2日 12時03分

佐藤さん、

マルティネです。

> date: invalid date '2024/04/02 12:00:00'

コンテナで GNU date ではなく busybox date を実行しているように見えます。
busybox date は --help に記載されている時刻形式しか対応してませんので、「2024/04/02 12:00:00」でエラーして、順番に ABOS Web にも空の時刻を依頼して失敗しますね。

参考の help メッセージ:

Recognized TIME formats:
	@seconds_since_1970
	hh:mm[:ss]
	[YYYY.]MM.DD-hh:mm[:ss]
	YYYY-MM-DD hh:mm[:ss]
	[[[[[YY]YY]MM]DD]hh]mm[.ss]
	'date TIME' form accepts MMDDhhmm[[YY]YY][.ss] instead

なので、「2024-04-02 12:00:00」ならできますね。

よろしくお願いします。

k.sato

2024年4月2日 12時58分

マルティネ様

佐藤です。

早速の返信ありがとうございます。

> なので、「2024-04-02 12:00:00」ならできますね。
コンテナ内から「2024-04-02 12:00:00」で時刻設定ができました。

> コンテナで GNU date ではなく busybox date を実行しているように見えます。
> busybox date は --help に記載されている時刻形式しか対応してませんので、「2024/04/02 12:00:00」でエラーして、順番に ABOS Web にも空の時刻を依頼して失敗しますね。
そういう違いだったのですね。
何故同じようにできないのか悩んでいました。

ありがとうございました。