Ошибка рядом с неожиданным токеном `(', но затем в доступе отказано

Я пытаюсь запустить этот плагин 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;;
0
задан 13 September 2021 в 11:50

0 ответов

Другие вопросы по тегам:

Похожие вопросы: