mmdullah Ответов: 2

Отправить команду оболочки в Linux из windows


Привет,

Мне нужно отправить сценарий оболочки/ или простую команду оболочки из приложения windows (c#)
на сервер linux. Linux-сервер просто выполнит его.


как я могу это сделать?
могу ли я сделать это с помощью cygwin? или что-нибудь еще.

пожалуйста, помогите мне как можно скорее.

Заранее спасибо.

Sergey Alexandrovich Kryukov

Ты хоть читал, чем занимается сигвин?
--СА

mmdullah

Я видел это в интернете:

Первоначально опубликовано theYinYeti
Один из способов сделать это:
- Установите Cygwin, а также следующие удобные "C:\cygwin\launch.bat" сценарий:
Код:
@echo off
С:
перейти C:\_cygwin\bin
bash --login-i-c "%*"
- Убежать от своего собственного .летучая мышь:
Код:
C:\cygwin\launch.bat ssh user@host " remotecommand"
Конечно, вам придется настроить аутентификацию на основе ключа без парольной фразы для хоста.

Ива.
Привет theYinYeti,

Большое спасибо за вашу помощь и ответ. Могу ли я узнать, как сделать аутентификацию на основе ключа без парольной фразы? Я новичок в этом cygwin.

ссылка: http://www.linuxquestions.org/questions/programming-9/how-to-execute-a-ssh-script-on-linux-server-from-windows-through-a-bat-script-581171/

2 Ответов

Рейтинг:
2

Sergey Alexandrovich Kryukov

Этот вопрос заставляет меня усомниться в том, что у вас достаточно опыта или базового понимания технологии, чтобы решить такую проблему, хотя она относительно проста.

Вам нужно иметь приложение Linux, которое должно играть роль сетевого сервера, а приложение Windows C# — его клиента. Запрос будет посылать команду. Теперь это можно сделать на нескольких различных уровнях. Одним из (очень безболезненных) способов было бы: создать как клиентскую, так и серверную сторону в .NET, где вы можете использовать сокеты на уровне TcpClient/TcpListener, классический remoting или WCF. Вы можете запустить серверное приложение в Linux без перекомпиляции использование моно:
http://en.wikipedia.org/wiki/Mono_%28software%29[^],
http://www.mono-project.com/[^].

Другой вариант, основанный на Mono: установите Apache и mod_mono (http://www.mono-project.com/[^], http://www.mono-project.com/Mod_mono[^]) и создать ASP.NET приложение с серверной стороной на Linux. В этом случае даже любой веб-браузер может играть роль клиента. Начать здесь: http://www.asp.net/get-started[^]. Клиент может быть также обычным приложением C# Windows, использующим HttpWebRequest для работы с веб-сервером в Linux см.:
http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.aspx[^],
http://msdn.microsoft.com/en-us/library/system.net.webrequest.aspx[^] (см. пример кода).

Существует целый ряд других вариантов. Например, вы можете реализовать веб-сервис в Linux, который будет использовать soap:
http://en.wikipedia.org/wiki/Web_Service[^],
http://en.wikipedia.org/wiki/SOAP[^].

Бережливое решение может использовать необработанные сокеты как со стороны, так и нативное Программирование со стороны Linux, предположительно C++, но поддержка его (реализация идентичного протокола прикладного уровня) может быть более сложной, то есть обе части являются CLR.

—СА


mmdullah

Спасибо за ваше техническое объяснение. Да, я новичок в linux. но мне нужно сделать это быстро.

Тем временем я изучил ActiveSocket, который соответствует вашему предложению.
Не могли бы вы взглянуть на это, и вы думаете, что это послужит моей цели?
ссылка: http://www.activexperts.com/network-component/howto/ssh/vcnet/
и руководство пользователя: http://www.activexperts.com/files/network-component/manual.htm#Ssh

Sergey Alexandrovich Kryukov

Активы? Я не знаю, никогда не пробовал, как библиотеки связаны .Сеть работала достаточно хорошо для меня до сих пор; я не люблю использовать какие-либо сторонние коды, если это абсолютно неизбежно. Это может помочь вам на стороне .NET, но я понятия не имею, как насчет Linux.

Если вы действительно Новичок в Linux, но имеете некоторый опыт работы с .NET, установите Mono на Linux, он достаточно надежен, чтобы запускать многие из них .Сетевые приложения на Linux. Таким образом, вам не нужно будет выполнять двойную работу: одну для Linux, другую для .Сеть и преодоление многих потенциальных проблем совместимости. Mono way будет самым быстрым во всех случаях, с ActiveSockets или нет.

Удачи,
--СА

Рейтинг:
1

Richard MacCutchan

WinSCP[^] мог бы тебе помочь.