Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Закладки » Удаленное выполнение на многих компьютерах

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

iltmpz

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть сеть, порядка 100 компьютеров win2000 (в одной подсети). Иногда требуется на всех выполнять одинаковые действия (в общем случае, запуск программы).
 
Подскажите, какой есть софт для этой цели? (поиском пользовался, но нашел что-то не то)
 
Предполагаю клиент-серверный вариант (т.е. поставить на все компы серверную часть, а потом со своего компа даю команду).
 
Хотелось бы:
- запускать от текущего или от указанного пользователя.
- иметь результат выполнения для каждого компа (лог скрипта или еще что-то).
- выполнение в интерактивном (для пользователя или для меня) или тихом режиме.
Конечно, необязательно все, это просто пожелания
 
Пробовал psexec (вызывать скриптом), но он работает криво.
Думал даже поставить всем ssh (а потом как-нибудь скриптом подключаться), но это наверняка будет работать еще кривее.

Всего записей: 281 | Зарегистр. 05-04-2006 | Отправлено: 17:34 27-07-2007
Pitersky

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iltmpz
Radmin

Всего записей: 2532 | Зарегистр. 19-06-2003 | Отправлено: 17:43 27-07-2007
iltmpz

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pitersky
Ну и при чем тут Radmin? Сам пользуюсь постоянно, но это не то:
Нужно выполнение именно на МНОГИХ компьютерах, чтобы я мог дать команду, и она ОДНОВРЕМЕННО выполнилась на всех компах (конечно, лучше не всегда на всех, а чтобы была возможность выбора из списка, например, половины).
 
(Или в новой версии radmin такую возможность добавили? Не слышал...)

Всего записей: 281 | Зарегистр. 05-04-2006 | Отправлено: 18:20 27-07-2007
iltmpz

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Неужели такого софта нет? Должен же быть.
Я искал по запросам "remote" и "удаленно" - выдало 2 страницы результатов, но ничего похожего на "одновременность" не оказалось. Ставить и проверять все эти программы возможности нет.
 
Ну или как в таком случае обычно выходят из положения? Неужели заходят radmin'ом на каждый комп по очереди?

Всего записей: 281 | Зарегистр. 05-04-2006 | Отправлено: 12:04 30-07-2007
NiktoN



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
iltmpz
в системное администрирование..  
Гуглить по слову RemoteExec

Всего записей: 297 | Зарегистр. 18-06-2003 | Отправлено: 15:30 30-07-2007
iltmpz

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NiktoN
Большое спасибо! Похоже, то, что нужно.
В администрировании, правда, не нашлось, как и в программах, зато нашлось в яндексе и варезнике.
Дальше по ссылкам, надеюсь, найду еще что-нибудь подобное

Всего записей: 281 | Зарегистр. 05-04-2006 | Отправлено: 17:09 30-07-2007
SvbNeoWork



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Уже есть...под последнюю версию.

Всего записей: 41 | Зарегистр. 15-04-2007 | Отправлено: 12:20 05-10-2007
troya



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Тема в Варезнике RemoteExec (найдено лекарство на текущую версию)

----------
Губит людей не пиво...

Всего записей: 5013 | Зарегистр. 11-04-2003 | Отправлено: 06:34 19-10-2007
iltmpz

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пока задача немного изменилась - нужно управлять серверами, например, на всех серверах создать юзера, перезапустить спулер, и т.п.
 
Возникла немного другая идея на эту тему:
Поставил связку apache+php на левом порту, htdocs закрыл паролем, написал небольшой скрипт на php. Из него при необходимости либо запускается требуемая команда с выводом stdout и stderr в браузер, либо вызывается тот же скрипт на других серверах, и команда запускается уже там. Результат опять же выводится в браузер.
Все параметры скрипту передаются через метод GET, т.е. через строку адреса, так что вызов скрипта производится открытием веб-страницы.
Пока правда реализовал только создание и удаление юзера (командой net user) на указанном списке серверов и еще пару команд по мелочи.
 
Вот хочу узнать: нет ли уже подобных проектов, не изобретаю ли я "велосипед"?
Насколько оправдана такая штука, может быть, проще заменить это чем-нибудь?
Хотелось бы узнать, кто что думает по этому поводу, стоит ли дальше развивать эту идею?

Всего записей: 281 | Зарегистр. 05-04-2006 | Отправлено: 04:15 29-10-2007
iltmpz

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Продолжаю развивать идею управления компьютерами через web, сформулировал для себя несколько простых принципов, которых собираюсь придерживаться (за небольшими исключениями):
1. Запуск команд производится через HTTP
2. Команды управления и большинство данных передаются методом GET, т.е. через строку адреса, а результат возращается в удобочитаемом виде в формате HTML
3. Ядро системы (основной скрипт) одинаково и равноправно на всех компьютерах
4. Система имеет модульную архитектуру, при этом более сложные задачи решаются разделением на команды, для выполнения которых по HTTP вызывается основной скрипт.
 
Пример:
Когда надо создать юзера, его надо создать на неск. серверах (с разными правами), создать ему почту и добавить юзера в общий список. Эту задачу решает модуль (который я сейчас пишу): 1 команда ядру: выполнить net user /add на нужных компах, 2-я команда: создать юзера почты (потом для этого напишу отдельный скрипт), 3-я команда: например "echo user password f.i.o. >> users.txt"
 
В ближайшее время планирую дописать скрипт и выложить куда-нибудь сюда.
 
Опять же, хотелось бы узнать, кто что думает по этому поводу?

Всего записей: 281 | Зарегистр. 05-04-2006 | Отправлено: 16:30 22-11-2007
Romanych11

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужная вещь. Ждём скрипт

Всего записей: 433 | Зарегистр. 30-10-2006 | Отправлено: 23:36 22-12-2007
iltmpz

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Выкладываю 1-ю версию скрипта, жду отзывов.
Пока дополнительных модулей не выкладываю - их функциональность слишком узкая - специфика создания пользователей, добавление в группы, реализация добавления на почтовый сервер и т.п. Буду развивать на основе отзывов и потребностей.
 
Пока из функциональности прилагаю только основной скрипт, позволяющий:
1. Выполнять пинг указанных машин (вообще несвойственная для системы задача, но вдруг пригодится).
2. Выполнять произвольные команды на произвольных машинах. Это основная задача системы.
 
Установка:
1. Развернуть архив на C:\ (чтобы появился каталог C:\Apache2)
2. Запустить C:\Apache2\install.bat
 
Система прописывается как служба Apache2mgt, стартует при запуске системы, не оставляет мусора в реестре. Логи выполненных действий складываются в C:\Apache2\logs
Это просто обычный apache+php (донастроенный мной).
Устанавливать на все машины, которыми надо управлять.
 
Удаление:
1. Запустить C:\Apache2\uninstall.bat
2. Удалить C:\Apache2
 
Запуск:
1. После установки открыть в браузере http://localhost:83/ (или с другого компьютера по сети)
2. Для быстрого входа можно использовать  
логин: manager
пароль: ns8j7sn1nd
3. В списке выбрать management.php - это главный файл, нажать "выполнить команду"
4. Набрать команды (каждую следующую - с новой строки), и имена (ip) серверов, на которых система установлена, запустить.
 
Например, для начала можно поставить систему на 1 машину, открыть localhost и выполнить "dir" на localhost (см. пример: C:\Apache2\example.htm)
 
Настройка:
1. Хотя все экземпляры системы равноправны, это может быть нежелательно с точки зрения безопасности. Для цепочки вызовов самой себя система использует вход с паролем, который передает себе в открытом виде.
Если система выполняет только роль управляемой, можно удалить файл C:\Apache2\htdocs\_auth.inc.php - там хранится логин/пароль и на управляемой системе он не нужен. Также можно удалить C:\Apache2\htdocs\_servers.inc.php - список машин по умолчанию, на которых выполнять скрипт.
 
2. Рекомендуется создать себе пользователя (или нескольких) для управления этой системой, чтобы не входить под manager - это системная учетная запись этой системы.  Команда создания пользователя:
C:\Apache2\bin\htpasswd.exe -b C:\Apache2\htdocs\.htpasswd user_name password
Создать пользователя достаточно на машине, с которой администрировать.
 
3. Настоятельно рекомендуется сменить пароль для manager (один и тот же на всех управляющих и управляемых машинах):
C:\Apache2\bin\htpasswd.exe -b C:\Apache2\htdocs\.htpasswd manager password
 
4. По умолчанию, система работает на 83 порту. При желании можно это изменить:
В C:\Apache2\htdocs\_management.inc.php изменить строку: $PORT="83";
И тот же порт выставить в C:\Apache2\conf\httpd.conf
 
5. Иногда может быть полезно изменить максимальное время выполнения скрипта:
В C:\Apache2\php\php.ini "max_execution_time = 300" - 300 секунд - изменить на то, что нужно.
 
Конечно, ничто не мешает при изменении этих настроек на всех компах сети воспользоваться самой этой программой
 
Примеры использования:
1. результат выполнения команды "dir" на машинах "localhost", "localhost" можно посмотреть в C:\Apache2\example.htm
 
2. возможно, на всех машинах полезно будет выполнить команду:
echo y|cacls c:\apache2 /P администраторы:F /T /C
это оставит доступ к C:\Apache2 в NTFS только админам - конечно, пароли в C:\Apache2\htdocs\.htpasswd зашифрованы, но мало ли что...
 
3. Создание пользователей:
net user "username" "passwd" /fullname:"Ф И О" /comment:"описание пользователя" /add 2>&1
Обратите внимание на окончание "2>&1". Без этого Вы не увидите в окне ошибок выполнения (stderr). Рекомендуется использовать это для получения информации об ошибках.
 
4. В состав программы я включил wget. Это маленькая программа для закачки файлов, но с большими возможностями. Наприсер, с помощью нее на каждый компьютер можно загружать произвольные файлы через тот же 83-й порт http, чтобы в дальнейшем выполнять их. Можно даже обновить сами файлы этого скрипта. (Возможно, в дальнейшем напишу модуль для этой цели).
 
Заключение:
Будте осторожны: проверьте, как команда работает в консоли, прежде чем запускать ее на всех машинах в сети. Убедитесь, что она делает то, что нужно и не попросит нажать какую-нибудь клавишу - это просто приведет к зависанию выполняемой команды на всех машинах.
Жду отзывов, комментариев и предложений.
Тема на форуме: http://forum.ru-board.com/topic.cgi?forum=5&bm=1&topic=24150
С уважением, iltmpz
При распространении и доработке системы просьба сохранять ссылку на автора.
Скачать: http://rapidshare.com/files/78727765/Apache2mgt.rar

Всего записей: 281 | Зарегистр. 05-04-2006 | Отправлено: 13:22 24-12-2007
iltmpz

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Написал модуль для перезапуска службы (нам надо иногда перезапускать службу activefax и radmin) на сервере 192.168.30.13.
Можно сказать, простейший вариант: только 1 сервер, просто выполнение на нем 3 команд нажатием 1 кнопки и 2 команд нажатием другой кнопки:

Код:
 
<?php
/*
 * activefax server management
 */
error_reporting(E_ALL);
define('IN_MGT',true);
{include("_management.inc.php");}
 
$start_microtime=get_micro_time();
 
if(!isset($_POST["action"]))form();
else switch($_POST["action"])
    {
    case "Restart ActiveFax":
        executeurl("http://$USER:$PASSWORD@192.168.30.13:83/management.php?action=exec&listcmd=net+stop+activefax-server-service+2%3E%261%0D%0Aecho+atz%3Ecom1%0D%0Anet+start+activefax-server-service+2%3E%261%0D%0A&listsrv=192.168.30.13%0D%0A&doitnow=on");
        break;
    case "Restart Radmin":
        executeurl("http://$USER:$PASSWORD@192.168.30.13:83/management.php?action=exec&listcmd=net+stop+%22remote+administrator+service%22+2%3E%261%0D%0Anet+start+%22remote+administrator+service%22+2%3E%261&listsrv=192.168.30.13%0D%0A&doitnow=on");
        break;
    default:echo "Неверное действие";
    }
echo "<br>Время генерации страницы: ".(get_micro_time()-$start_microtime)." секунд(ы)";
 
function form()
{
echo '<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>'.$_SERVER["SERVER_NAME"].' - Система управления службами сервера</title>
</head>
<body>';
echo '<h3>Система управления ActiveFax на сервере "'.$_SERVER["SERVER_NAME"].'"</h3>';
echo '<form action="?" method="POST">
<input type="submit" name="action" value="Restart ActiveFax"><br>
<input type="submit" name="action" value="Restart Radmin"><br>
</form>';
}
?>
 

Сами команды (и сервер, где их выполнять) прописаны в виде параметра для executeurl.
Пример достаточно универсальный - вдруг кому понадобится перезапускать спулер или выполнять на конкретном сервере еще какую команду (или 2-3 команды)?
Просто вписать еще 3 строки в этот модуль.

Всего записей: 281 | Зарегистр. 05-04-2006 | Отправлено: 12:06 11-01-2008
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Программы » Закладки » Удаленное выполнение на многих компьютерах


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru