CPU温度を取得し、VARに保存してサーバーに送信します。

CPU温度を取得し、VARに保存してサーバーに送信します。

Wenn 私はsensorsこの出力を得ます。

cpu_thermal-virtual-0
Adapter: Virtual device
temp1:        +55.0 C  (crit = +120.0 C)


私だけが必要+55.0℃変数に保存温度そしてそれをサーバーに送ってください:

curl -i -k -X POST -H "Content-Type: application/json" --data '{ "id":"2","timestamp":"100","data":"temp"}' https://dv7knsjzph.execute-api.eu-central-1.amazonaws.com/prod/boxtronic-devices/2/data/

答え1

TEMP=$(sensors -j | jq '."cpu_thermal-virtual-0"."temp1"."temp1_input"')
curl -i -k -X POST -H "Content-Type: application/json" --data '{ "id":"2","timestamp":"100","data":"'${TEMP}'"}' https://dv7knsjzph.execute-api.eu-central-1.amazonaws.com/prod/boxtronic-devices/2/data/

$()出力を受け取り、変数に保存しますTEMP(バックティックに似ています`がカプセル化できます)。

-jFor sensors- json形式のコマンド出力データ

jqjsonで作業するためのツールです。-ペアには特別な意味があるため、引用符を使用することが重要ですjq。内部セクションの出力は$()生温度でなければなりません。

- ラインではcurl- 変数から温度が注入されますTEMP。この値は一重引用符の外になければなりません。それ以外の場合は、${TEMP}変数の内容に置き換えられず、そのまま残ります。校正装置はオプションですが、推奨されます。

答え2

temp=`sensors | awk '/temp1/{print $2}'`

curl -i -k -X POST -H "Content-Type: application/json" --data "{ \"id\":\"2\",\"timestamp\":\"100\",\"data\":\"$temp\"}" $URL

関連情報