поставлен в тупик из-за ввода команд через ssh

Непрерывное соединение ничего не меняет в случае MaxSessions . Эта опция используется только для мультиплексирования соединений (функция ControlMaster ).

Это очень зависит от того, как вы выходите из сессий. Если вы сделаете это правильно, серверная часть должна существовать сразу (если только что-то не сломалось. Какую ОС вы используете? Какую версию openssh?). Как долго эти соединения здесь остаются открытыми?

2
25.02.2017, 22:12
2 ответа
ssh-сервер "[grep command]"

Замены переменных и команд ($variable, $(command), `command`) выполняются внутри двойных кавычек, поэтому если в $ или ` появляется [grep command], это выполняется локальной оболочкой перед вызовом ssh. Затем, после выполнения подстановок (локальный запуск команды grep), вызывается ssh, чтобы echo строку на удаленном хосте.

Заключите команду, которую нужно выполнить на удаленном хосте, в одинарные кавычки (т.е. апострофы):

ssh server '[grep command]'

Для простоты не заключайте команду в одинарные кавычки. Если вам действительно нужна одинарная кавычка, вы можете включить ее как '\'' (одинарная кавычка, обратная косая черта, одинарная кавычка, одинарная кавычка).

0
27.01.2020, 22:19

Выполнение

ssh {remoteserver} "echo `/bin/grep xyz /path/to/logfiles/*access*|wc -l`"

приводит к выполнению подкоманды на вашем локальном компьютере, а не на удаленном. Это можно просто проверить с помощью

$ ssh host "echo `hostname`"
the local hostname

, если вы хотите запустить подкоманду на удаленном сервере, используйте апострофы

$ ssh host 'echo `hostname`'
the remote hostname

, но ошибка в обновлении отличается от исходной ...

1
27.01.2020, 22:19

Теги

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