Удаленный запуск приложений C ++

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

Настройки app + сильно различаются, и я хочу, чтобы именно эта версия папки app + settings использовалась удаленными экземплярами.

Мой подход пока:

  • Запустите приложение локально
  • Используйте PSEXEC для удаленного запуска того же исполняемого файла, что и на локальном сервере -> на серверах (со случайным номером порта, передаваемым аргументом)
  • Общайся с ними через сокеты
  • Отправить команды для удаленного выполнения и получить результаты

Моя проблема заключается в файлах конфигурации, которых много (50+), а некоторые из них + 4 МБ. Эти файлы конфигурации являются файлами TXT в папке конфигурации.

Как правильно это сделать? Можно ли использовать PSEXEC для удаленного копирования всей папки? Могу ли я сделать какой-нибудь хороший трюк с сокетами, чтобы напрямую передать копию локальных файлов на удаленный компьютер?

Я хотел бы, чтобы весь процесс был полупрозрачным. Так как многие люди будут использовать его с разными версиями и настройками одновременно. Поэтому ручное копирование файлов на 20+ серверов НЕ является опцией.

Спасибо!

1

Решение

Поместите программу / скрипт, который вы хотите выполнить на всех машинах, в одно общее место в локальной сети (тоже поместите ваши конфиги). На всех серверах создайте командный файл, скажем «runme.bat», который будет запускать вашу программу прямо из сетевого расположения.

Таким образом, вы можете использовать psexec для запуска runme.bat, по существу выполняя вашу программу / скрипт на любом сервере, который вы хотите.

Поскольку часто — возникают проблемы с использованием psexec — вы можете вызывать свои скрипты из планировщика задач и т. Д.

Я делаю это для 500+ серверов, и это работает. Если работает для меня, это будет работать для вас.

1

Другие решения

Возможно, вы захотите посмотреть на HTCondor (http://research.cs.wisc.edu/htcondor/) который, возможно, мог бы справиться со всем этим для вас.

0

По вопросам рекламы [email protected]