获取 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(类似于反引号`但可以封装)

-j对于sensors- 命令输出 json 格式的数据

jq是一个对json进行操作的工具。引号的使用很重要,因为-对 具有特殊含义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

相关内容