Вопрос

Я хочу удаленно выполнять команды на машине с хост-машины, выполняющей, скажем, приложение типа C#/C++/C.Приложение предназначено для контроля и выполнения выполнения команд на удаленной машине.Возможно ли что-то подобное, используя любой язык программирования??

Я проверил psexec и т. д., но мне нужен больший контроль, поэтому я думаю сделать это программно «по-своему» :)

Привет Ананд

Это было полезно?

Решение

Не уверен насчет типа команд, которые вы ищете. Проще говоря, «вызов-командир» должен быть в состоянии выполнять команды на локальных и удаленных компьютерах.

Если вы ищете настройку в значительной степени, вам может потребоваться разработать агенты (такие как сборка, используемые с CI), которые могут выполнять.

Другие советы

Googlr для "удаленного вызова процедуры" и посмотрите на http://en.wikipedia.org/wiki/soap

Для Unix SSH является хорошим вариантом, для Windows вы можете использовать комбинацию WinRM / PowerShell, есть C ++ API, доступные для WinRM / PowerShell.

Psexec - это хороший способ исследовать. Смотреть здесь Больше подробностей.

В C# довольно тривиально размещать услугу WCF в вашем приложении и удалить таким образом.

Проверить эта ссылка.

Я использовал XML-RPC До RPC в C и это довольно просто.

Это действительно зависит от того, какой тип «команд» вы хотите выполнять, насколько мощными вы хотите видеть свои приложения и какие ресурсы (время, стоимость, рабочая сила, уровень навыков и т. д.) у вас есть.У вас есть множество вариантов: от банальных и легко реализуемых до перегруженных шедевров SOA.Как упоминалось выше, вы можете использовать что-то простое, например SSH, PowerShell и т. д., но похоже, что вам нужно что-то более мощное (современное?) (Кстати, xml-rpc — это не только единороги и радуги;У меня есть шрамы, чтобы доказать это!)

Отправка удаленных команд между компьютерами — старая, решенная проблема, поэтому существует множество существующих технологий, которыми вы можете воспользоваться:RPC -> XML-RPC -> WS-*/SOAP -> SOAP-RPC -> .Net Remoting -> WCF -> REST...и это лишь немногие избранные, к которым у вас есть доступ.

Если ваши требования довольно просты, я бы отказался от полноценной архитектуры типа SOA/ESB и, возможно, использовал бы такую ​​технологию, как WCF (которую все еще можно использовать, если вы мечтаете о многом и хотите расширить приложение до SOA). шедевр позже).Работа с WCF требует некоторого обучения (и WCF, конечно, не только единороги и радуги), но у нас есть много ресурсов, на которых можно учиться.

Используя WCF, вы также можете реализовать фактические вызовы через REST, закодировать данные в JSON, построить все это в приложении ASP.Net MVC, и тогда вы будете полностью совместимы с модными словами.Но что еще более важно, у вас будет гибкое и расширяемое приложение в будущем.

Было бы полезно узнать больше о конкретных типах команд, которые вы хотите запускать, и о функциях, которые вам нужны.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top