добавление значений под элементом в json

Если возможно сетевое соединение с удаленной машины на вашу локальную машину. Вы можете:

Настроить туннель с помощью SSH -R от удаленного к локальному, а затем использовать этот туннель для SSH от локального к удаленному. См. инициировать ssh-соединение от сервера к клиенту , как было предложено выше amarillo .

Если подключение к сети невозможно, вы все равно можете использовать:

  1. Включить последовательную консоль, т.е. войти в систему через последовательный кабель (обычно RS232). Протяните последовательный кабель между двумя серверами с каждой стороны маршрутизатора. См. Gettys на последовательных консолях (с systemd) или вики-страницу Ubuntu SerialConsole

  2. Используйте сетевой переключатель клавиатура-видео-мышь (известный как KVM over IP ).Это устройство IPKVM должно быть подключено к разъему USB и VGA удаленного сервера с одной стороны и должно быть подключено к сети на вашей стороне маршрутизатора. Это устройство позволяет вам управлять удаленной клавиатурой и мышью, чтобы контролировать и просматривать происходящее (потоковое видео).

0
25.02.2019, 18:52
2 ответа

Обратите внимание, что ваш «стандартный JSON» на самом деле не является JSON (перед закрывающим ]вHTTP_SERVER)стоит лишняя запятая.

Кроме того, sedбудет работать только в том случае, если исходный код отформатирован так, как вам нужно, он не будет работать для произвольного JSON (, который может не иметь разрывов строк ).

Таким образом, лучшим решением является использование jq, как в

$ jq --arg list "$list_of_machine" '.HTTP_SERVER|=.+($list|split(" "))' < your_file.json 
{
  "MNN_server": [
    "master02.sys645.com"
  ],
  "HTTP_SERVER": [
    "master01.sys645.com",
    "worker01.sys645.com",
    "worker02.sys645.com",
    "worker03.sys645.com",
    "worker04.sys645.com",
    "worker05.sys645.com"
  ]
}

со скважиной -, сформированной your_file.json, разумеется.

2
28.01.2020, 02:22

С немного другим отступом.

$ sed 's/\("master01.sys645.com",\)/\1'$(echo -e "\\\\n\\\\t\"${list_of_machine// /\",\\\\n\\\\t\"}\"")'/' json
{
  "MNN_server": [
    "master02.sys645.com"
  ],
  "HTTP_SERVER": [
    "master01.sys645.com",
        "worker01.sys645.com",
        "worker02.sys645.com",
        "worker03.sys645.com",
        "worker04.sys645.com",
        "worker05.sys645.com"
  ]
}
1
28.01.2020, 02:22

Теги

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