Проверка что в sudoers все скрипты для Zabbix существуют

zabbix_agentd который используется для мониторинга сероверов, может запускать скрипты. Для большинства из этих скриптов необходимы права root. Это обеспечивается через su в файле конфигурации агента и sudoers.
Но иногда при конфигурировании множества серверов (zabbix-agentd) сталкиваешься с тем, что некоторые скрипты которые там перечислены отсутствуют на диске. Это приведёт к тому что скрипт не будет выполняться. А чтобы по-быстрому проверить я набросал скрипт который проверяет все ли скрипты или программы есть на диске и пишет имена отсутствующих. По правде говоря скрипт не обрабатывает файлы с Cmnd_Alias и файлы вложенные в каталог /etc/sudoers.d/

cat /etc/sudoers | grep -i "zabbix ALL=NOPASSWD:" | cut -d ':' -f2- | sed 's/[,]\+/\n/g' | sed -e 's/^[ \t]\+//g;s/^\(\/[^ ]*\).*$/\1/g' | while read FN ; do [ ! -e "${FN}" ] && echo "${FN} - not exists" ; done


А следующий скрипт проверит что все пользовательские команды из конфигов /etc/zabbix/conf.d/*.conf выполняемые через sudo существуют на диске и перечислены в sudoers. Кроме этого он напечатает команды которые нужно выполнить с хоста собирающего данные чтобы проверить все объявленные функции.

#!/bin/bash

ZABBIX_AGENTD_IP="10.5.4.253"

while read CNF ; do
  while IFS=',' read PARAM CMD ; do
    echo -e "zabbix_get -s ${ZABBIX_AGENTD_IP} -k ${PARAM}" ;
    CMD=`echo -e "${CMD}" | sed -e 's/ .*$//g' `;
    [ ! -e "${CMD}" ] && echo -e "${CMD} - not exists";
    [ -z "`grep -i \"zabbix \+ALL=NOPASSWD:\" /etc/sudoers | grep \"${CMD}\"`" ] && echo -e "${CMD} not present in /etc/sudoers"
  done < <(cat "${CNF}" | sed -e 's/#.*$//g;s/[\t]/ /g;s/^ \+//g;s/ \+$//g;//d' | grep -i 'UserParameter=[^,]\+,[ \t]*sudo[ \t]' | sed -e 's/UserParameter=\([^,]\+\),[ \t]*sudo[ \t]*\(.\+\)$/\1,\2/g')
done < <(find /etc/zabbix/conf.d/ -maxdepth 1 -name "*.conf")