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

관련 정보