Действительно ли возможно отправить HEREDOC по ssh к удаленному хосту из сценария, работающего локально?

Обновление новейшей версии rsyslog. У нас была эта точная проблема на работе, и это - единственная вещь, которая решила ее. Более ранняя версия (версии) имела проблемы с определением имен, и даже выключение его не решило его. 7.x ответвление решает проблему. Я буду видеть, могу ли я найти определенную ссылку.

8
23.05.2017, 15:40
2 ответа

Если вы оборваете всю команду, которую вы хотите выполнить внутри BackTicks, это вероятно, вы получите правильное решение. Существуют проблемы, касающиеся оценки переменных и других интерполированных элементов, но я на мгновение положив их в одну сторону.

Тем не менее, я не совсем уверен, что вы хотите что-нибудь в Backticks. Ваш вопрос говорит, что вы хотите запустить локальный скрипт удаленно. Ваш первый пример делает это.

ssh -q user@host << ENDSSH
hostname
ls -l
id
ENDSSH

Возможно, вы хотите получить вывод удаленного выполнения в переменную? Это не говорит о том, что в любом месте вопроса, но вы сделаете это так ( Bash )

RESULT=$(ssh user@host <<ENDSSH
hostname
id
ENDSSH
)
...
echo "$RESULT"

или, поскольку вы упомянули CSH , как это

set result = `ssh -q user@host` <<ENDSSH
hostname
id
ENDSSH
...
echo "$result"

Что для CSH вариант все выходные линии объединяются вместе.

Я вижу, что вы сообщили об ошибке, STTY: Стандартный вход: неверный аргумент. Это, вероятно, происходит, потому что у вас есть команда STTY в вашем скрипте входа на удаленный сервер. Это должно быть завернуто в тесте для интерактивной оболочки. В Bash Вы сделали бы что-то вроде этого:

if test -n "$PS1"
then
    # Interactive setup here
    stty ...
fi
4
27.01.2020, 20:12

Не уверены, что вы пытаетесь сделать, но вот что-то, что сработало для меня.

(Drat возникла проблемы с проблемами Stockexchange Text Editor от обработки задних клещей в качестве символов форматирования, используя прямые, которые я имею в виду обратные тики)

R='ssh -t hostname <<EOF
ls -l
EOF'

Примечание. создать виртуальный TTY, хотя STDIO перенаправляется.

2
27.01.2020, 20:12

Теги

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