ввод кота | grep ".=" > вывод
или ввод
cat | grep "errno" > вывод
, и вы получите:
02:57:25 BROKER : Unable to open errno =. (1295)
, но вы должны быть уверены, что все эти типы строк имеют эти уникальные идентификаторы (т.е. ни одна из других строк не имеет этих слов/символов):
"ошибка" или "=".
Попробуйте использовать программу sshpass для передачи пароля ssh. Его можно использовать так:
SSHPASS='sshpassword'
remoterootpass='remoterootpass'
sshpass -e ssh user@host <'EOF'
su -
echo "$remoterootpass"
service snmpd stop
reboot
EOF
Вы также можете поместить свои удаленные команды в сценарий оболочки и вызвать его следующим образом:
SSHPASS='sshpassword'
cat myscript.sh | sshpass -e ssh user@host
Примечание.:Приведенный здесь ответ должен работать. Однако нарушает лучшие практики. Этот ответ также предполагает, что sshpass
доступен на хосте, где будет инициирована команда. Пользователь отметил, что он будет использоваться один раз, а затем удален.
sshpass -pPASSWORD ssh -tt [username]@[host] 'echo PASSWORD | sudo -S -s /bin/bash -c "service snmpd stop; reboot"'
По крайней мере, пользователь должен использовать обмен ключами для входа по ssh и разрешить выполнение нужных команд через sudo без пароля.