У меня просто была та же проблема на хинду с 3.5.0 ядрами. То, какой пример онлайн я не попробовал вывода, добралось до клиента, пока я не выполнил следующую команду:
dmesg -n 7
Я первоначально попробовал
dmesg -n 8
который был предложен в документации ядра, но это возвратилось
localhost ~ # dmesg -n 8 dmesg: unknown level '8'
где dmesg-n 7 работал
localhost ~ # dmesg -n 7 localhost ~ # echo check > /sys/block/md0/md/sync_action
Вот то, что я вошел в клиент
datastore1 ~ # nc -l -p 30000 -u [ 9698.913098] md: data-check of RAID array md0 [ 9698.913112] md: minimum _guaranteed_ speed: 1000 KB/sec/disk. [ 9698.913124] md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for data-check. [ 9698.913150] md: using 128k window, over a total of 1048512k. [ 9718.197555] md: md0: data-check done.
BTW, Вот то, как я устанавливаю netconsole:
modprobe netconsole netconsole="@/eth0,30000@192.168.1.31/"
Bash отображает одинарные кавычки, чтобы показать команду, которая является допустимым входным синтаксисом. Это не выполняет команду, которая содержит эти одинарные кавычки в параметре к ssh
команда.
ssh … '"sudo' /home/pi/shared/blink.sh 27 'off"'
говорит Вам, что последние 4 параметра команды ssh "sudo
, /home/pi/shared/blink.sh
, 27
и off"
.
На удаленном хосте ssh демон присоединяется к словам команд с пробелами как разделители, таким образом, удаленная команда, которую Вы выполняете,
"sudo /home/pi/shared/blink.sh 27 off"
Это пытается выполнить команду, имя которой sudo /home/pi/shared/blink.sh 27 off
, который, конечно, не существует.
Удалите двойные кавычки из своего определения testvar
.
Это не имеет значения здесь, но это, вероятно, имеет значение в Вашем реальном случае: вместо ${testvar}
, записать "$testvar"
(или "${testvar}"
если Вы хотите, но фигурные скобки являются дополнительными). Всегда помещайте двойные кавычки вокруг подстановок переменных, если Вы не знаете, почему необходимо пропустить их. "$testvar"
расширяется до значения переменной testvar
, тогда как $testvar
если не в двойных кавычках рассматривает значение testvar
как разделенный от пробела список шаблонов шарика.
Я думаю, что необходимо использовать:
testvar="sudo /home/pi/shared/blink.sh 27 off"
ssh -n -q -q -o BatchMode=yes -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o ConnectTimeout=5 $1 "${testvar}"
Это работает на меня:
$ bash -x -c 'testvar="la la la"; echo "${testvar}"'
+ testvar='la la la'
+ echo 'la la la'
la la la
Но если я пишу, что то же как Вы сделало, я получаю тот же неправильный результат:
$ bash -x -c 'testvar="\"la la la\""; echo ${testvar}'
+ testvar='"la la la"'
+ echo '"la' la 'la"'
"la la la"
Shell разделяет значение переменной в слова. Doublequote это для предотвращения разделения. Посмотрите различие:
t='"a b c"'
set -xv
echo $t
echo "$t"