Дописал в конфиг агента парамерт, измеряющий размер папки для linux:
ExternalParameter = FolderSize(*):cd "$1" && du -sh -b
Получаю вот такое значение:
1640657413056.
Т.е. на конце точка. Как можно преобразовать данное значение в целое?
Пытался вывести без точки, на вкладке "Преобразование данных" написал следующее:
a = length($1)-1;
b = left($1,a);
c = abs(b);
return c;
Тест вроде бы успешно проходит, но значение метрики не выводится.
Как правильно получить значение?
Измени скрипт получения данных на такой:
ExternalParameter = FolderSize(*):cd "$1" && du -sh -b | awk '{print($$1)}'
в настройках метрики, выставляй тип данных как Int, ну или UInt...
$$ - не ошибка, иначе NX воспримет его как передаваемый параметр.
Спасибо, но получаю значение 857884057, но оно не соответсвует действительности.
Папка весит 1 640 666 413 056 байт
1. А если запустить скрипт из консоли?
2. Какой тип данных выбирается? Указанное число выходит за пределы типа int.
3. Действительно нужен размер в байтах?Возможно имеет смысл конвертить сразу в мегабайты, etc.
Если из putty выполнить команду то пустой ответ. Тип данных пробовал разный и целое и 64бит целое. Можно и в мегабайтах, главное чтобы только число
Сорри, не акцентировал внимание сразу... надо выполнить du -sh -b | awk '{print($1)}' (т.е. не $$)
Спасибо, получилось. Но только с навели. Вместо awk указал gawk.
Рано обрадовался. В консоли выполняется а в netxms возвращает пустое значение