Если я вас правильно понял, и если предположить, что ваш ssh
на localhost
слушает порт 22, то:
awk '{print "[localhost]:22 " $1 " " $2}' /etc/ssh/ssh_host_ecdsa_key.pub
напечатает запись known_hosts
. Обратите внимание, что некоторые реализации ssh скрывают записи в ~/.ssh/known_hosts
, а приведенная выше команда — нет.
# awk '{print "[localhost]:22 " $1 " " $2}' /etc/ssh/ssh_host_ecdsa_key.pub
[localhost]:22 ecdsa-sha2-nistp256 AAAAE2............g7vPmspiyg=
temp=`sensors | awk '/temp1/{print $2}'`
curl -i -k -X POST -H "Content-Type: application/json" --data "{ \"id\":\"2\",\"timestamp\":\"100\",\"data\":\"$temp\"}" $URL
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}
вместо того, чтобы быть замененным содержимым переменных. Фигурные скобки необязательны, но желательны.