2017-02-06 18 views
2

Я бегу на машинеSSH команда трубопровода ошибки

ssh [email protected] cat /root/devops/giveAllArtifacts.txt | xargs -I {} sh -c "grep {} /ci/test.log;" 

Я подвожу Grep: /ci/test.log: Нет такого файла или каталога

, но и ту же команду (cat /root/devops/giveAllArtifacts.txt | xargs -I {} sh -c "grep {} /ci/test.log;") на server: lPServerHgl работает как можно без ошибок.

У меня нет проблем с ss. У нас нет каких-либо проблем. Все другие команды работают над ssh. Кажется, что проблема связана с командами с каналами.

ответ

1

Труба работает на вашем локальном компьютере, а не на удаленном сервере.

ssh [email protected] remote-cmd [...args] | local-cmd [...args] 
--------- runs in server --------- | --- runs locally ---- 

Труба интерпретируется вашей оболочки, а не удаленного один. Чтобы выполнить конвейер с другой стороны соединения ssh, вы вызываете там оболочку. Например:

ssh [email protected] bash -c "'cat file.txt | grep foo'" 

Обратите внимание на внутренние кавычки. Это отправит трубопровод на процесс bash на другом компьютере.

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

+0

, чтобы проверить, правильно ли вы сказали, я запустил это ssh user @ host ls -l/ci | grep drwx , и он дал результат удаленного хоста вместо локальной машины. И вызов bash дважды не работает, потому что я делаю это уже в xrags sh -c – christoph

+0

'ssh user @ host bash -c" cat file.txt | grep foo "' Это не совсем работает. ssh в конечном итоге вызовет 'bash -c cat file.txt | grep foo' на пульте дистанционного управления, который не выполняет то, что предназначено. – Kenster

+0

любым другим способом указать ssh, что его единственная команда будет выполнена на remote.I пробовал это ssh root @ lPServerHgl 'cat /root/devops/giveAllArtifacts.txt | xargs -I {} sh -c "grep {} /ci/test.log;" ' , но все еще не работает – christoph

 Смежные вопросы

  • Нет связанных вопросов^_^