Я пытаюсь запустить этот плагин nagios:
sudo /usr/lib64/nagios/plugins/check_generic.pl -n "slab_mem" -e "SLAB=$$(cat /proc/meminfo | egrep "Slab:" | awk '{print $$2;}'); MEMTOTAL=$$(cat /proc/meminfo | egrep "MemTotal:" | awk '{print $2;}'); awk "BEGIN {print 100*$$SLAB/$$MEMTOTAL}"" -w '>50' -c '>80' -p "slab_mem"
Он показывает эту ошибку:
sh: -c: line 0: syntax error near unexpected token `('
sh: -c: line 0: `SLAB=76876(cat /proc/meminfo | egrep "Slab:" | awk '{print 768762;}'); MEMTOTAL=76876(cat /proc/meminfo | egrep "MemTotal:" | awk '{print ;}'); awk BEGIN 1>/var/tmp/check_generic/check_generic_stdout_77319.64001 2>/var/tmp/check_generic/check_generic_stderr_77319.23364'
slab_mem UNKNOWN - result:RC1 output: match:RC!=OK |slab_mem=;50.000000;80.000000;;
Я обнаружил, что экранирование (
и )
может заставить его работать, но не работает, затем выдает эту ошибку:
-bash-4.1$ /usr/lib64/nagios/plugins/check_generic.pl -n "slab_mem" -e "SLAB=$$\(cat /proc/meminfo | egrep "Slab:" | awk '{print $$2;}'\); MEMTOTAL=$$\(cat /proc/meminfo | egrep "MemTotal:" | awk '{print $2;}'\); awk "BEGIN {print 100*$$SLAB/$$MEMTOTAL}"" -w '>50' -c '>80' -p "slab_mem"
sh: /proc/meminfo: Permission denied
awk: {print 749962;})
awk: ^ syntax error
sh: /proc/meminfo: Permission denied
awk: {print ;})
awk: ^ syntax error
Единственная информация, которую я нашел при попытке прочитать /proc/meminfo, это то, что некоторые люди пытались выполнить его (вместо чтения с cat
), но это не так.
EDIT:
Пытаюсь сбежать $$
:
Команда:
-bash-4.1$ /usr/lib64/nagios/plugins/check_generic.pl -n "slab_mem" -e "SLAB=\$\$\(cat /proc/meminfo | egrep "Slab:" | awk '(print $$2'\) MEMTOTAL=\$\$\(cat /proc/meminfo | egrep "MemTotal:" | awk '{print $2;}'\); awk "BEGIN {print 100*\$\$SLAB/\$\$MEMTOTAL}"" -w '>50' -c '>80' -p "slab_mem"
Результат:
sh: /proc/meminfo: Permission denied
awk: {print ;})
awk: ^ syntax error
awk: (print 499542)
awk: ^ syntax error
awk: cmd. line:1: (print 499542)
awk: cmd. line:1: ^ unexpected newline or end of string
slab_mem UNKNOWN - result:RC1 output: match:RC!=OK [awk: cmd. line:1: BEGIN blocks must have an action part]|slab_mem=;50.000000;80.000000;;