Оболочка - не в состоянии производить вывод лога скрипта - PullRequest
0 голосов
/ 18 мая 2018

Я пытаюсь выполнить следующую команду

ssh xxx@99.99.99.99 ". ./.profile; myscript  2&1 >> /tmp/2244455.log" 

Но появляется следующая ошибка

sh: 1: execute permission denied

Когда я запускаю myscript 2&1 >> /tmp/2244455.log на моем удаленном сервере, она работает отлично.

Также, когда я запускаю ssh xxx@99.99.99.99 ". ./.profile; myscript, он работает отлично.

Пожалуйста, можете помочь мне с этой проблемой

myscript не принадлежит xxx, разрешения

ls -ltrh myscript -rwxr-xr-x 1 yyy other 11K May 18 15:04 myscript

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

Размещение рюкзаков вокруг команды ssh приведет к тому, что ваша локальная оболочка попытается запустить свой вывод в виде новой командной строки.Избавьтесь от них, если это не просто опечатка при форматировании вашего вопроса.

Настоящая проблема в том, что вы пропустили > при перенаправлении.2>&1, а не 2&1.Версия > less просто добавляет 2 в качестве аргумента команды, а затем пытается выполнить эту команду в фоновом режиме, одновременно выполняя команду с именем 1 на переднем плане.

0 голосов
/ 18 мая 2018

Синтаксис 2 & 1 неверен;если вы хотите перенаправить stderr в stdout, вам необходимо:

2>&1

У вас также есть кавычки, которые не вложены должным образом;обратный удар `` перекрывается двойными кавычками.РЕДАКТИРОВАТЬ: я вижу, что вы отредактировали вопрос, но теперь в начале вашей команды есть непарный обратный тик

Итак, я думаю, что вы после с кавычками, но ваша команда может быть:

ssh xxx@99.99.99.99 ". ./.profile; myscript  2>&1 >> /tmp/2244455.log"

Это приведет к созданию /tmp/2244455.log на удаленном компьютере 99.99.99.99.

...