Не может отправить команды через SSH к брандмауэрам Juniper

Я использовал бы, находят

find ./foo -type d | wc -l

в конечном счете с -maxdepth опция

6
задан 27 October 2012 в 11:37
4 ответа

SSH не выделяет псевдо-TTY, когда вы указываете команду для запуска. Попробуйте добавить опцию «-t», чтобы переопределить это.

1
ответ дан 3 December 2019 в 00:44

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

Если это тупая (или ограниченная, если вы предпочитаете называть ее) интерактивная оболочка, она может очень сильно ну, не были закодированы для поддержки обоих (я видел такое поведение на практике). Однако, поскольку оболочка явно поддерживает типизированные команды, вам, вероятно, повезет больше, если вы просто отправите все команды на его стандартный ввод. Примерно так:

echo command | ssh ...
0
ответ дан 3 December 2019 в 00:44

Как кто-то прокомментировал, попробуйте добавить -t или даже -tt, чтобы заставить его. Похожая проблема была предположительно исправлена ​​с помощью этого обходного пути.

На самом деле у меня есть проблема, связанная с этой, за исключением меня, она работает из интерфейса командной строки, но не работает через cron.

0
ответ дан 3 December 2019 в 00:44

это работает на SRX240:

( echo 'sh conf|d s|n'; echo 'quit' ) | ssh root@192.168.1.1 "cli"

Это можно улучшить, заставив использовать bash heredoc, чтобы вы могли просто вставить в него полные операторы, но этот пример должен достаточно помочь вам сейчас.

0
ответ дан 3 December 2019 в 00:44

Теги

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