Непрерывное соединение ничего не меняет в случае MaxSessions
. Эта опция используется только для мультиплексирования соединений (функция ControlMaster
).
Это очень зависит от того, как вы выходите из сессий. Если вы сделаете это правильно, серверная часть должна существовать сразу (если только что-то не сломалось. Какую ОС вы используете? Какую версию openssh?). Как долго эти соединения здесь остаются открытыми?
ssh-сервер "[grep command]"
Замены переменных и команд ($variable
, $(command)
, `command`
) выполняются внутри двойных кавычек, поэтому если в $
или `
появляется [grep command]
, это выполняется локальной оболочкой перед вызовом ssh
. Затем, после выполнения подстановок (локальный запуск команды grep
), вызывается ssh
, чтобы echo
строку на удаленном хосте.
Заключите команду, которую нужно выполнить на удаленном хосте, в одинарные кавычки (т.е. апострофы):
ssh server '[grep command]'
Для простоты не заключайте команду в одинарные кавычки. Если вам действительно нужна одинарная кавычка, вы можете включить ее как '\''
(одинарная кавычка, обратная косая черта, одинарная кавычка, одинарная кавычка).
Выполнение
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
, но ошибка в обновлении отличается от исходной ...