Страница 2 из 2

ucs

СообщениеДобавлено: 14 окт 2004, 13:07
skoltogyan
это расширения для PERL позволяюющее обращаться к eDir, NetWare Server
Например можно посмотреть какие модули загружены, создавать объекты в дереве, поключаться к LDAP, доступ к атрибуат на диске...
примеры есть тут:
http://www.gknw.com/nwperl/perlucx

СообщениеДобавлено: 14 окт 2004, 13:48
Музалёв Николай
а остальное
Код: Выделить всё
Universal Component System® (UCS) allows you to use objects of various object environments from scripting engines on the NetWare® platform. This means that Universal Component eXtensions (UCX), Java* classes, JavaBeans, and (remote) ActiveX* controls can be used with Novell Script for NetWare (NSN) or Perl 5.
- здесь

СообщениеДобавлено: 14 окт 2004, 14:20
Vladimir Red'kin
Музалёв Николай писал(а):а остальное
Код: Выделить всё
Universal Component System® (UCS) allows you to use objects of various object environments from scripting engines on the NetWare® platform. This means that Universal Component eXtensions (UCX), Java* classes, JavaBeans, and (remote) ActiveX* controls can be used with Novell Script for NetWare (NSN) or Perl 5.
- здесь


Ну что ж. По ссылкам попрыгал, почитал. Архивы Перла и UCS закачал. Буду пробовать эту связку.
Спасибо за помощь.
Хотя, наверное, вопросов будет ещё море
:wink:

вопросов у вас будет мало

СообщениеДобавлено: 14 окт 2004, 16:54
skoltogyan
1.там примеро прямо показывает кк увидеть СПИСОК загруженых NLM
2. вам останется только вставить проверку - есть-ли в списке , например
NWZIP.NLM

lделается это так:

$etalon="NWZIP.NLM";

......прямо в цикле из примера....
...этот цикл перелистывает список всех нынче загруженых
...............................
if ( $etalon eq $name ) {
такой моуль есть среди загруженых....
}
else {
нет такого модуля среди загруженых
}
..........................


запускать из perl так:
system("sys:/system/monitor.nlm");

удачи

Re: вопросов у вас будет мало

СообщениеДобавлено: 14 окт 2004, 17:06
Vladimir Red'kin
skoltogyan писал(а):1.там примеро прямо показывает кк увидеть СПИСОК загруженых NLM
2. вам останется только вставить проверку - есть-ли в списке , например
NWZIP.NLM

lделается это так:

$etalon="NWZIP.NLM";

......прямо в цикле из примера....
...этот цикл перелистывает список всех нынче загруженых
...............................
if ( $etalon eq $name ) {
такой моуль есть среди загруженых....
}
else {
нет такого модуля среди загруженых
}
..........................


запускать из perl так:
system("sys:/system/monitor.nlm");

удачи


Огромное спасибо. На неделе думаю буду пробовать.
(благо есть тестовый сервак ) :wink:

начал разбитаться:

СообщениеДобавлено: 15 окт 2004, 14:40
Vladimir Red'kin
установил java 1.3.1
установил perl 5.8
установит UCS (вроде версия 2.0)

а дальше как? :

надо ли как-то загружать UCS?

Пробую запустить PERL RANDOM.PL из примеров
пишет, что не может загрузить UCS2JAVA.NLM
пытаюсь руками загрузить UCS2JAVA.NLM - пишет, что сначала надо подгрузить JVM

гружу его из JAVA\BIN\

затем PERL RANDOM.PL
сервер слетает, перегружается :cry:

Какая последовательность действий должна быть?
Мне бы хотябы примеры из samples запустить.

надо так

СообщениеДобавлено: 15 окт 2004, 16:17
skoltogyan
1. java была лишним, но не трогайте - оставте
2. создайте файл:
sys:/perl/scripts/t.pl
содержанием:
#!perl
# Perl test script which uses UCX:SERVER component to list loaded NLMs.
# v0.01 21-Jul-2002 (c) G.Knauf, info@gknw.de
#

use Perl2UCS;
$server = Perl2UCS->new("UCX:Server") or die "UCX:Server";

$modules = $server->{'Modules'};
$modules->Reset();

while ($modules->HasMoreElements()) {
$id++;
$module = $modules->Next();
$name = $module->{'Name'};
printf "Module name=[ ".$name." ]\n";
}


и запустите его на выполненние так

perl sys:/perl/scripts/t.pl

по экрану должен пробежать список загруженных в данный момент NLM-ок

Ещё вопросик

СообщениеДобавлено: 21 окт 2004, 10:28
Vladimir Red'kin
Нарисовал файл tt.pl :
--------
#!perl
# Perl test script which uses UCX:SERVER component to list loaded NLMs.
# v0.01 13-Aug-2002 (c) G.Knauf, info@gknw.de
#
use Perl2UCS;
System("butil -STARTBU @SYS:\BACKUP\list");
sleep 2;
$nlm = "nwzip.nlm";
System("nwzip sbis_db_mkd");
$server = Perl2UCS->new("UCX:Server") or die "UCX:Server";
$mods = $server->{"Modules"};
$module = $mods->Element($nlm);
#$temp = $module->{"Loaded"};
# пока nwzip загружен ждем-с
while ($module->{"Loaded"})
{
sleep 2;
}
System("butil -ENDBU @SYS:\BACKUP\list /s");
sleep 2;
System("nwzip sbis_db_all");
-------
Запускаю perl tt.pl , а он мне :
Undefined subroutine &main::System called at tt.pl line 6.

Что ему в этой строке/System("butil -STARTBU @SYS:\BACKUP\list");/
не нравится?
Если заремить все строки , где System(), то работает.

СообщениеДобавлено: 21 окт 2004, 11:06
skoltogyan
sys:\system\perl\scripts\t.pl содержания такого(две строки):

system("load monitor");
exit(0);

Запускаете так прямо с консоли сервера:

perl sys:\system\perl\scripts\t.pl

должен запустится MONITOR.NLM


Получилось ?

СообщениеДобавлено: 21 окт 2004, 11:43
Vladimir Red'kin
skoltogyan писал(а):sys:\system\perl\scripts\t.pl содержания такого(две строки):

system("load monitor");
exit(0);

Запускаете так прямо с консоли сервера:

perl sys:\system\perl\scripts\t.pl

должен запустится MONITOR.NLM


Получилось ?


Оказывается к регистру шибко чувствителен:
System != system

вроде заработало
смотрю дальше

СообщениеДобавлено: 26 окт 2004, 16:32
Vladimir Red'kin
Boris Morozov писал(а):значение параметра NOSECURECONSOLE с 1 на 0
и будет вам счастье. У меня точно такая конфигурация года два в нескольких местах работает без всяких задержек. Спасибо Андрею Подойникову за предусмотрительность.


Действительно, так горазда проще получилось :)

Единственно: без Java 1.3.1 похоже BUTIL почему-то не хочет работать.
Но это уже другая история :D


Всем Большое Спасибо!

Дело хозяйское :)

СообщениеДобавлено: 26 окт 2004, 18:02
skoltogyan
Вот Вам пример, может понадобиться
Cинтаксис макисмально упрощен.

# Проверяет - есть-ли такой SCREEN
# GroupWise WebAccess Agent
# т.е. то, что видно по Ctrl-Esc на консоле сервера
# Если нет такого Screen - запускает
# protect srtweb
#- ниже собственно текст

#!sys:/perl\lib

$etalon="GroupWise WebAccess Agent";
$sw=0;

use Perl2UCS;
$server = Perl2UCS->new("UCX:Server") or die "UCX:Server";

$screens = $server->{'Screens'};
$screens->Reset();

while ($screens->HasMoreElements()) {
$screen = $screens->Next();
$name = $screen->{'Name'};
if ($name eq $etalon) {
$sw=1;
$break; };
}
if ($sw == 0) {
system("protect strtweb")
};
exit(0);

Запускаеть при помощи:
chkgwweb.ncf с содержанием:
perl sys:/perl/scripts/chkgwweb.pl --noscreen --autodestroy

Добавив сюда свои SLEEP(), можете дорастить его до Ваших Нужд.
Собственно можно проверять не наличиее SCREEN, а загружен-ли модуль. И запускать по мере надобности Ваши NLM-ки.

Удачи.

Не улавливаю связи между Butil и Java

СообщениеДобавлено: 26 окт 2004, 22:17
Boris Morozov
Как же он у меня к примеру на 4.11 работает?

Re: Не улавливаю связи между Butil и Java

СообщениеДобавлено: 27 окт 2004, 08:54
Vladimir Red'kin
Boris Morozov писал(а):Как же он у меня к примеру на 4.11 работает?


Ну я с нуля поставил 5.1, потом SP7(там Java 1.2.x)
PERL,UCS,Pervasive 2000i sp2a

пробовол BUTIL - с ошибками вываливался (ругался на файл , где перечислены файлы)

установил Java 1.3.1 - и у меня заработало.
Вроде больше ничего не менял :roll:

Re: Дело хозяйское :)

СообщениеДобавлено: 27 окт 2004, 09:00
Vladimir Red'kin
skoltogyan писал(а):Вот Вам пример, может понадобиться
...
Удачи.


Спасибо!