2009-05-08 3 views
2

Я построил пакетный файл с моего компьютера Windows, который подключается к серверу UNIX. I Затем нужно, чтобы команды исполнялись в UNIX из командного файла. Похоже, что UNIX не распознает мои команды после входа на сервер. Это то, что я закодированы:SSH Windows to UNIX

SSH SERVERNAME выход

Прямо сейчас, я просто пытаюсь сделать это войти и выйти. Я зашел на сервер, но затем команда exit не выполняется. Кто-нибудь знает, чтобы UNIX выполнял мои команды после того, как я вошел в систему, используя этот командный файл?

+0

Ваше сообщение выглядит как одна строка 'ssh SERVERNAME exit', но ваш текст в режиме редактирования показывает две строки. Кого вы пытаетесь сделать? –

ответ

5

exit не выполняется, потому что это не команда, это внутренняя оболочка (which exit, если вы мне не верите). Попробуйте вместо этого echo hello world.

+0

Это хороший ответ, который также можно перефразировать как «попробуйте устранить неполадки». – Travis

+0

ssh servername exit работает отлично для меня. – innaM

+0

@innaM см. Мой комментарий в ответе sharth's. –

4

SSH SERVERNAME 'выход'

вы, вероятно, в конечном итоге с чем-то, такие как:

ssh SERVERNAME 'bash some_remote_script.sh' 

(заменить Баш с любой оболочки вам пожалуйста)

им не уверен, почему "хаос" продолжает получать поддержку, его ответ не имеет никакого отношения к вопросу. ssh SERVERNAME 'exit' работает отлично.

+0

+1 Это сработало для меня, спасибо! (читайте также мой комментарий к @wr ответу) –

+0

(Но не сука о upvotes!) –

0

Взгляните на раздел «7.3 Использование Plink в пакетных файлах и сценариях» на странице plink documentation. Это может сделать то, что вы хотите.

+0

Я боролся с plink для этой проблемы и как думаю, что это выглядит лучше работать в этом случае. (Я обычно использую plink для других вещей) –

+0

В частности, я пытаюсь запустить скрипт, который требует ввода пользователем, но с plink его всегда неинтерактивным !? –

3

Ну, это, кажется, работает для меня, но попробуйте это:

ssh -t server command 

Вы можете просто нужно псевдо-терминал, выделенный.

+0

Я думаю, что это «похоже» работает, так как 'ssh -t server ls' выполняет' ls', а затем завершает работу, поэтому 'ssh -t server exit' ничего не делает, как указывает @chaos, тогда оболочка ssh выходит! @Gerry –

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