как запустить файл сценария удаленно с помощью ssh

<p>я хочу запустить скрипт удаленно. но система не распознает путь. он жалуется, что "нет такого файла или каталога" я правильно его использую?</p><pre><code>ssh kev@server1 `./test/foo.sh` </code></pre>

<p>backticks запустит команду в локальной командной консоли и поместит результаты в командную строку. то, что вы говорите, это «выполнить ./test/foo.sh и затем передать вывод, как если бы я набрал его здесь в командной строке».</p><p>попробуйте следующую команду и убедитесь, что это путь от вашего домашнего каталога на удаленном компьютере до вашего сценария.</p><pre><code>ssh kev@server1 './test/foo.sh' </code></pre><p>также скрипт должен находиться на удаленном компьютере. по сути, вы входите на удаленный компьютер, используя указанную команду в качестве командной консоли. вы не можете запустить локальный скрипт на удаленном компьютере, как этот (если только у меня нет забавного трюка).</p>

<p>что вы можете сделать, это.</p><pre><code>ssh user@host 'bash -s' < /path/script.sh </code></pre>

<p>если вы хотите выполнить локальный сценарий удаленно, без сохранения этого сценария, вы можете сделать это следующим образом:</p><pre><code>cat local\_script.sh | ssh user@remotehost 'bash -' </code></pre><p>работает как шарм для меня.</p><p>я делаю это даже из windows в linux, учитывая, что на вашем компьютере windows установлен msys.</p>

<p>я не знаю, возможно ли запустить это просто так.</p><p>я обычно сначала копирую его с помощью scp, а затем захожу, чтобы запустить его.</p><pre><code>scp foo.sh user@host:~ ssh user@host ./foo.sh </code></pre>

<p>сделайте скрипт исполняемым пользователем<em> "kev" </em>и затем удалите попытку, запустив команду <code>sh kev@server1 /test/foo.sh</code></p>

<p>мне удалось вызвать сценарий оболочки с помощью этой команды:</p><pre><code>ssh ${serverhost} "./sh/checkscript.ksh" конечно, checkscript.ksh должен существовать в каталоге $home/sh</code>.</p>