следующая проблема:
у нас есть файл с именем file.conf
192.168.30.1|192.168.30.1|os
_gateway|192.168.30.2|Linux 2.6.18 - 2.6.22
...
первый - имя хоста второй - ipv4
теперь у нас есть скрипт где он должен автоматически вставить хосты и IP-адреса с помощью автоматического пользователя из checkMK
#!/bin/bash
FILE=filename
source $FILE
for i in ${FILE}
do
HOSTNAME=$(cat $i | cut -d '|' -f1)
IP=$(cat $i | cut -d '|' -f2)
curl "http://checkmkadress/check_mk/host&user" -d 'request={"hostname":"'"$HOSTNAME"'","folder":"ansible","attributes":{"ipaddress":"'"$IP"'","site":"sitename","tag_agent":"cmk-agent"}}'
done
, но если мы сделаем так, мы получим следующую ошибку, потому что он попытается вставить каждый хост в хост и каждый ip в ip не проходя все строки
{"result": "Check_MK exception: Failed to parse JSON request: '{\"hostname\":\"allhostnames":{\"ipaddress\":all_ips\",\"site\":\"sitename\",\"tag_agent\":\"cmk-agent\"}}': Invalid control character at: line 1 column 26 (char 25)", "result_code": 1}
как мы можем сделать скрипт curl go через каждую строку, чтобы получить host и ip индивидуально