Требуется через агент автоматически получать FQDN хоста чтобы не
прописывать в каждом zabbix_agentd.conf имя хоста руками
и чтобы не было путаницы при одинаковых system.hostname но разных
доменах.
Есть такой вариант реализаци:
zabbix_agentd.conf
EnableRemoteCommands=1
HostnameItem=system.run[c:\windows\zabbix\dns_name.bat]
dns_name.bat
но проблема заключается в том что в eng винде в лог идёт строка
Pinging test2003 [127.0.0.1] with 32 bytes of data:
а в rus винде
Обмен пакетами с S324.mgs.ru [::1] с 32 байтами данных:
соответственно tokens будет иметь разное значение для разных языков ОС.
Пробовали сначало выбирать первое слово и если оно == Pinging делать рызне проверки, но упёрлись в выбор 1й строки средствами cmd.
Если кто сталкивался подскажите пожалуйста как получить из
текстовика только 1ю строку не через искомое слово или символ.
Или возможно есть вариант получить FQDN способом проще ?
прописывать в каждом zabbix_agentd.conf имя хоста руками
и чтобы не было путаницы при одинаковых system.hostname но разных
доменах.
Есть такой вариант реализаци:
zabbix_agentd.conf
EnableRemoteCommands=1
HostnameItem=system.run[c:\windows\zabbix\dns_name.bat]
dns_name.bat
Code:
@echo off
ping -n 1 localhost 1>1.log
For /F "tokens=4" %%i in ('findstr /C:"[127.0.0.1]" 1.log') do Set FULLNAME=%%i
if '%FULLNAME%' == '' (goto :step2
) else (Echo %FULLNAME%)
:step2
For /F "tokens=4" %%i in ('findstr /C:"[::1]" 1.log') do Set FULLNAME=%%i
Echo %FULLNAME%
Pinging test2003 [127.0.0.1] with 32 bytes of data:
а в rus винде
Обмен пакетами с S324.mgs.ru [::1] с 32 байтами данных:
соответственно tokens будет иметь разное значение для разных языков ОС.
Пробовали сначало выбирать первое слово и если оно == Pinging делать рызне проверки, но упёрлись в выбор 1й строки средствами cmd.
Если кто сталкивался подскажите пожалуйста как получить из
текстовика только 1ю строку не через искомое слово или символ.
Или возможно есть вариант получить FQDN способом проще ?
Comment