Как запустить скрипт на Linux из службы Windows? - PullRequest
2 голосов
/ 01 октября 2009

Кто-нибудь знает элегантный способ запуска bash-скрипта (для запуска на Linux-коробке) из службы Windows, написанной на C #?

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

Безопасность не должна быть очень высокой, так как оба блока находятся во внутренней локальной сети внутри корпоративного брандмауэра. И только системные администраторы могут войти в окно Windows.

Ответы [ 5 ]

2 голосов
/ 01 октября 2009

Вы можете использовать SSH с аутентификацией по ключу для запуска команды без необходимости ввода или сохранения пароля в вашем приложении. Вы должны включить аутентификацию ключа на SSH-сервере Linux (следуйте инструкциям здесь , чтобы создать и сохранить ключ в соответствующем месте на сервере), а затем вы можете запустить

plink -i <key_location> user@machine "command"

в вашем приложении через Process.Start ()

plink - утилита командной строки, поставляемая в комплекте с PuTTY.

РЕДАКТИРОВАТЬ: Если вы не хотите PKI (что может быть не очень хорошая идея, но вы знаете свою среду), вы можете настроить rsh-сервер в окне linux и отправить команду через rsh ( Cygwin's rsh может лучше работать с Linux-блоками)

1 голос
/ 01 октября 2009

Если они находятся за брандмауэром, вы можете создать мини-сервер на машине linux, который ожидает команды на данном порту. Windows может подключиться к этому порту и отправить команду.

0 голосов
/ 01 октября 2009

Поскольку вы запросили что-то, что можно легко использовать из C #, метод веб-сервера может быть лучшим: быстрый и простой, и пароль не понадобится. Установите скрипт Linux в / var / www / cgi-bin и запустите его с помощью магии C #, чтобы открыть сокет http и вызвать http://hostname/cgi-bin/programname.

0 голосов
/ 01 октября 2009

Я делаю это с Cygwin , включая дополнительные пакеты для ssh и cron. Почти так же элегантно, как и на реальной машине Unix.

0 голосов
/ 01 октября 2009

Если на Linux установлена ​​самба, вы можете использовать магический скрипт http://oreilly.com/catalog/samba/chapter/book/ch08_02.html

Я бы, вероятно, запустил веб-сервер на Linux и запустил скрипт через http-запрос

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...