Посмотрите это обсуждение для понимания того, почему "ntpdate" все еще желаем и используем.
Подвести итог его: ntpd является медленным в сравнении при создании крупной временной регулировки, даже с-g опцией.
Я могу думать о двух способах сделать это: (a) используйте внешнюю команду для изменения команды проверки (Nagios называет этот "адаптивный контроль"), или (b) разделите сервис на два с различными командами проверки и периоды.
Я буду использовать check_load
как и пример с ними (скелетные) определения обслуживания и команды:
define service{
name load
host_name foohost
check_command check_load!1,1,1!2,2,2
... (all other options)
}
define command{
name check_load
command_line $USER1$/check_load -w $ARG1$ -c $ARG2$
}
Поскольку (a) предполагают, что Вы хотите измениться, эти значения в 20:00 возвращают их в 8:00. В кроне добавляют
0 20 * * * /some/path/change_load_check 3,3,3 4,4,4
0 8 * * * /some/path/change_load_check 1,1,1 2,2,2
где change_load_check
#!/bin/sh
now=`date +%s`
commandfile='/usr/local/nagios/var/rw/nagios.cmd'
W=$1
C=$2
/bin/printf "[%lu] CHANGE_SVC_CHECK_COMMAND;foohost;load;check_load!$W!$C\n" \
$now > $commandfile
Необходимо было включить внешние команды.
Для (b) Вы взяли бы исходный сервис, превратили бы его в шаблон и создали бы два новых сервиса, которые указывают различные периоды и проверяют команды как так:
define service{
name load_template
host_name foohost
... (all other options)
register 0
}
define service{
name load_workhours
use load_template
check_period workhours
notification_period workhours
check_command check_load!1,1,1!2,2,2
}
define service{
name load_offhours
use load_template
check_period offhours
notification_period offhours
check_command check_load!3,3,3!4,4,4
}