Отправка jq с argjson через ssh

Проблема была в wpa _supplicant.service, который не запускался. После найти проблему было легко, с некоторыми командами все работает.

wpa _supplicant.service не смог получить доступ к libssl1.0.2

Решение:

apt install --reinstall libssl1.0.2 <br>
service wpa_supplicant restart <br>
reboot
1
17.10.2019, 11:30
1 ответ

Самый простой способ убедиться, что все цитирование выполнено правильно, — это заставить оболочку сделать это за вас, используя declare -fдля генерации текстового представления уже -локально -определенной функции, и declare -pдля создания текстовых представлений любых локальных переменных, к которым функция нуждается в доступе. Таким образом:

doRemoteWork() {
  jq -Rn --argjson original_doc "$(<nodes.json)" '
    input | split("\u0000") as $ips
    | $original_doc
    |.nodes.app.ip = $ips[0]
    |.nodes.data.ip = $ips[1]
    |.nodes.analysis.ip = $ips[2]
    |.nodes.elastic_kafka_1.ip = $ips[3]
    |.nodes.elastic_kafka_2.ip = $ips[4]
    |.nodes.elastic_kafka_3.ip = $ips[5]
    |.nodes.master.ip = $ips[6]
  ' < <(printf '%s\0' "${GCP_INSTANCES[@]}") >"nodes.json.$$" \
  && mv "nodes.json.$$" nodes.json
}

ssh -o StrictHostKeyChecking=no -i key.pem user@172.13.1.23 \
  "$(declare -p GCP_INSTANCES; declare -f doRemoteWork); doRemoteWork"
3
27.01.2020, 23:30

Теги

Похожие вопросы