This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
ru:manual:appendix:command_execution [2016/09/28 07:26] 127.0.0.1 external edit |
ru:manual:appendix:command_execution [2018/06/26 15:19] (current) dotneft |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== 8 Выполнение команд ===== | + | ===== 10 Выполнение команд ===== |
- | Zabbix использует единый функционал для выполнения пользовательских параметров, удаленных команд, элементов данных system.run[] без флага "nowait", скриптов (оповещения, внешних и глобальных) и некоторых внутренних команд. | + | Zabbix использует единый функционал для выполнения внешних проверок, пользовательских параметров, элементов данных system.run, пользовательских скриптов оповещений, удаленных команд и пользовательских скриптов. |
Команда/скрипт выполняется одинаково как на Unix, так и на Windows платформах: | Команда/скрипт выполняется одинаково как на Unix, так и на Windows платформах: | ||
Line 9: | Line 9: | ||
- Создается новая группа процесса (в Unix) или задача (в Windows) для дочернего процесса | - Создается новая группа процесса (в Unix) или задача (в Windows) для дочернего процесса | ||
- Zabbix считывает из канала данные по истечении установленного времени ожидания или до момента, когда запись прекратится (ВСЕ обработчики/файловые дескрипторы закрыты). Обратите внимание, что дочерний процесс может создать еще некоторое количество процессов и выйти до того, как эти процессы завершатся или будет закрыт обработчик/файловый дескриптор. | - Zabbix считывает из канала данные по истечении установленного времени ожидания или до момента, когда запись прекратится (ВСЕ обработчики/файловые дескрипторы закрыты). Обратите внимание, что дочерний процесс может создать еще некоторое количество процессов и выйти до того, как эти процессы завершатся или будет закрыт обработчик/файловый дескриптор. | ||
- | - Если установленное время ожидания не достигнуто, то Zabbix ждет завершения начального дочернего процесса или ждет достижения установленного времени ожидания. | + | - Если установленное время ожидания не достигнуто, то Zabbix ждет завершения начального дочернего процесса или ждет достижения установленного времени ожидания. |
+ | - Если начальный дочерний процесс завершил свою работу и время ожидания не вышло, тогда Zabbix проверяет код вызода начального дочернего процесса и сравнивает его с 0 (ненулевое значение считается ошибкой выполнения, только для пользовательских скриптов оповещений, удаленных команд и пользовательских скриптов выполняемых на Zabbix сервере и Zabbix прокси) | ||
- На этот момент подразумевается, что всё выполнено и всё дерево процессов (т.е. группа процессов или задача) завершены. | - На этот момент подразумевается, что всё выполнено и всё дерево процессов (т.е. группа процессов или задача) завершены. | ||
- | |||
- | <note important>Шаги с 5 по 7 не относятся к удаленным командам, если они выполняются с флагом "nowait".</note> | ||
<note important>Zabbix предполагает, что команда/скрипт завершили обработку, в тот момент, когда завершился изначальный дочерний процесс И никакие другие процессы все еще не держат открытым обработчик/файловый дескриптор. Когда обработка завершена, ВСЕ созданные процессы завершаются.</note> | <note important>Zabbix предполагает, что команда/скрипт завершили обработку, в тот момент, когда завершился изначальный дочерний процесс И никакие другие процессы все еще не держат открытым обработчик/файловый дескриптор. Когда обработка завершена, ВСЕ созданные процессы завершаются.</note> | ||
Line 18: | Line 17: | ||
Все двойные кавычки и обратная косая черта в команде экранируются обратной косой чертой и вся команда заключается в двойные кавычки. | Все двойные кавычки и обратная косая черта в команде экранируются обратной косой чертой и вся команда заключается в двойные кавычки. | ||
- | Смотрите более подробную информацию о [[ru:manual:config:items:userparameters|пользовательских параметрах]], [[ru:manual:config:notifications:action:operation:remote_command|удаленных командах]] и [[manual:config:notifications:media:script|скриптах оповещения]]. | + | === Проверка кода выхода === |
+ | |||
+ | Код выхода проверяется на соответствие следующим условиям: | ||
+ | |||
+ | *только для пользовательских скриптов оповещений, удаленных команд и пользовательских скриптов выполняемых на Zabbix сервере и Zabbix прокси. | ||
+ | *Любой код выхода, отличный от 0 считается ошибкой выполнения. | ||
+ | *Содержимое стандарного вывода ошибки и стандартного вывода собирается при ошибочных выполнениях и доступно в веб-интерфейсе (где отображается результат выполнения). | ||
+ | *Добавляется дополнительная запись в журнал для удаленных команд на Zabbix сервере, чтобы сохранить вывод выполнения скрипта, эту возможность можно включить, используя [[:ru/manual/appendix/config/zabbix_agentd|параметр]] агента LogRemoteCommands. | ||
+ | |||
+ | Возможные сообщения в веб-интерфейсе и записи в журналах при ошибочных командах/скриптах: | ||
+ | * Содержимое стандарного вывода ошибки и стандартного вывода при ошибочных выполнениях (если имеется). | ||
+ | * %%"%%Process exited with code: N.%%"%% (при пустом выводе и коде выхода отлично от 0). | ||
+ | * %%"%%Process killed by signal: N.%%"%% (при завершении процесса сигналом, только на Linux). | ||
+ | * %%"%%Process terminated unexpectedly.%%"%% (при завершениях процесса по неизвестным причинам). | ||
+ | |||
+ | ---- | ||
+ | |||
+ | Подробнее о: | ||
+ | |||
+ | * [[:ru/manual/config/items/itemtypes/external#результат_внешней_проверки|Внешние проверки]] | ||
+ | * [[:ru/manual/config/items/userparameters|Пользовательские параметры]] | ||
+ | * Элементы данных [[:ru/manual/config/items/itemtypes/zabbix_agent|system.run]] | ||
+ | * [[:ru/manual/config/notifications/media/script|Пользовательские скрипты оповещений]] | ||
+ | * [[:ru/manual/config/notifications/action:operation/remote_command|Удаленные команды]] | ||
+ | * [[:ru/manual/web_interface/frontend_sections/administration/scripts|Глобальные скрипты]] |