В моей текущей установке nagios я проверяю наличие удаленной резервной копии через NRPE. В частности, мой удаленный файл nrpe.cfg (в Ubuntu 8.x):
command[check_zimbra_backup]=/usr/lib/nagios/plugins/check_file_age -f \\
/backupdir/zimbra_backup-$(date +%a).tar.gz -w 518400 -c 86400
Выполнение команды локально вернуло ОК:
$ sudo su -m nagios -c "/usr/lib/nagios/plugins/check_file_age -f \\
/backupdir/zimbra_backup-$(date +%a).tar.gz -w 518400 -c 86400 "
FILE_AGE OK: /backupdir/zimbra_backup-Sun.tar.gz is 47661 seconds old and 10863637475 bytes
Однако мои журналы показали КРИТИЧЕСКОЕ:
nagios: SERVICE NOTIFICATION: zimbra backups;CRITICAL;notify-service-by-email;
FILE_AGE CRITICAL: /backupdir/zimbra_backup-Sun.tar.gz is 22373 seconds old and 10863637475 bytes
Обратите внимание, как он возвращает критическое состояние, несмотря на то, что количество секунд, о которых сообщается (22373), меньше, чем параметры предупреждения (86400 секунд, или 24 часа).
Интересно то, что запуск плагина NRPE удаленно возвращает что-то странное:
$ sudo su -m _nagios -c "/usr/local/libexec/nagios/check_nrpe -H HOST \\
-c check_zimbra_backup"
FILE_AGE CRITICAL: /backupdir/zimbra_backup-Sun.tar.gz is 23611 seconds old and 10863637475 bytes
ҷ?Oڷ`xڷ
Обратите внимание на последнюю строку, которая выглядит как искаженный вывод.
В check_file_age
плагин - это версия v1750 (nagios-plugins 1.4.11)
Решением было изменить подстановку команд с
[...]zimbra_backup-$(date +%a).tar.gz
к
[...]zimbra_backup-`date +%a`.tar.gz
Похоже, что nagios выполняет некоторую странную подстановку команд, когда встречает $
подписать.