I wrote a bash script for a custom nagios plugin that passes two command arguments for the warning and critical thresholds. When I run the bash script locally while passing the two arguments it works correctly (also tested by su to nrpe user and works there as well). However, when I run it remotely on the monitoring server the script does not work correctly, meaning, it doesn't appropriately assign the warning and critical thresholds.

From this I believe it to be an issue with argument passing, however, I am fairly sure I have it configured correctly. The only weird thing I would say about it is that I have added sudo to the command in nrpe.cfg on the remote host.

The setup looks like this:

remote host


command[customcheck_bash]=/usr/bin/sudo /usr/lib/nagios/plugins/customcheck.sh --warning $ARG1$ --critical $ARG2$

monitoring server


define command{
    command_name    customcheck_bash
    command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$ $ARG3$



define service {
    use                             generic-service
    host_name                       client
    service_description             Custom checker
    check_command                   check_nrpe!customcheck_bash!10!20

any help would be appreciated, I've looked at countless sites for this but can't seem to figure it out.


  • Have your command write a log showing what arguments it got. Then what does your log show? – chicks Nov 13 '15 at 19:52

finally figured this out and was very trivial. What you suggested would've helped if I had seen it in time. But basically the issue was this line:

command[customcheck_bash]=/usr/bin/sudo /usr/lib/nagios/plugins/customcheck.sh --warning $ARG1$ --critical $ARG2$

you do not need the --warning and --critical flags

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.