Вт, 26.11.2024, 10:39
Приветствую Вас Гость | RSS
Главная | Из Униха достать до MVS'а :) - Форум | Регистрация | Вход
Форма входа
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Из Униха достать до MVS'а :)
slДата: Пт, 11.02.2011, 02:51 | Сообщение # 1
Лейтенант
Группа: Проверенные
Сообщений: 55
Репутация: 0
Статус: Offline
Господа, если не трудно, поделитесь опытом на тему $subj.
Возможны ли такие штуки как посмотреть оглавление тома/библиотеки , свободное место на томе, чего есть запущенного ?
Если нет готовых команд, то может есть хоть API, позволяющий такие штуки делать ?

Мне вот очень бы хотелось прицепить z/OS к nagios'у, и проще и логичней всего было б выполнять командочки через ssh. Но в доках пока нашел только возможность копирования файлов MVS-Unix, и то немножко через одно место

 
EHabarovДата: Пт, 11.02.2011, 11:54 | Сообщение # 2
Майор
Группа: Доверенные
Сообщений: 86
Репутация: 7
Статус: Offline
Файлы копируются из MVS в USS и наоборот на "ура" обычной командой cp.
Далее, многие вещи можно сделать с помощью z/OS FTP сервера. Его функциональность очень разносторонняя.
Ну и в USS запросто исполняются REXX-скрипты. А на REXX и готовых утилит написано много и своего можно много написать.

PS: Если будет конкретика, что именно хочется и в каком виде, могу помочь это реализовать. С опубликованием исходников например здесь.
Может и еще кто-нибудь подключится к процессу.

 
slДата: Пт, 11.02.2011, 12:51 | Сообщение # 3
Лейтенант
Группа: Проверенные
Сообщений: 55
Репутация: 0
Статус: Offline
Так я написал конкретику:
1. Свободное место на томе
2. Оглавление тома (чтоб дальше его обработать sed'ом и вытащить то что мне в данный момент интересно)
3. Процессы, job'ы (то что SDSF выдает по PS и ST)
- для начала мне бы этого для счастья хватило.

На REXX'е я почти ничего не писал, слабо представляю его возможности. Правильно ли я понял, что он имеет встроенные возможности доступа к той информации, что меня интересует ? (Понятно, что обработку полученных строк можно делать в чем угодно, эта возможность REXXа здесь малоинтересна)

А FTP - что хитрого он умеет кроме работы с очередями JES ? Кстати, оглавление тома им можно увидеть ?

 
GregoryДата: Пт, 11.02.2011, 19:28 | Сообщение # 4
Генерал-майор
Группа: Доверенные
Сообщений: 482
Репутация: 22
Статус: Offline
наиболее простой способ сделать 1-3, по моему, такой:
- готовим файл с заданием, которое делает то, что нужно, например, для 1) и 2) это может быть
//IEHLIST EXEC PGM=IEHLIST
//SYSPRINT DD SYSOUT=*
//SYSLIB DD DISP=OLD,VOL=SER=XXXXXX,UNIT=3390
//SYSIN DD *
LISTVTOC VOL=3390=XXXXXX
//
- выполняем это задание с помощью FTP к localhost, дожидаяясь его завершения и получая результат в файле
open 127.0.0.1
quote site filetype=jes
get /u/fipsadm/iehlist.jcl /u/fipsadm/iehlist.output
- читаем и разбираем полученный листинг.
- FTP выполняем из скрипта или REXX
Несмотря на некоторую экзотичность этот способ хорош тем, что выполняемое задание может делать совершенно все что угодно,
например, для 3) выполнять SDSF в пакете (SDSF - авторизованная программа и вызвать ее непосредственно в TSO или USS ооочень непросто).


Сообщение отредактировал Gregory - Пт, 11.02.2011, 19:30
 
slДата: Пт, 11.02.2011, 20:21 | Сообщение # 5
Лейтенант
Группа: Проверенные
Сообщений: 55
Репутация: 0
Статус: Offline
"Экзотичность" ?! Давайте называть вещи своими именами, в данном случае - через-опность smile
Если серьезно, то мне он не нравится по следующим причинам:
1. Результат работы зависит от слишком многих случайностей. Ну например - задержали входную очередь зачем-то, и опаньки.
2. Время выполнения опять же плавает в зависимости от, таймауты надо ставить по максимуму... Тоскливо!
Если учесть цель - чтоб в конце цепочки я получал SMS "Стряслась Опа!" - идея мне не нравится категорически.

У меня через send-expect в adsl-модем выдаются команды rmmod - казалось бы, чего проще ? "Надежность" выполнения этого скрипта - где-то 0.90-0.95 smile

 
GregoryДата: Пт, 11.02.2011, 23:45 | Сообщение # 6
Генерал-майор
Группа: Доверенные
Сообщений: 482
Репутация: 22
Статус: Offline
1. если задержали входную очередь или задание выполняется дольше, чем jesputgetto, ftp get завершится с ошибкой, а проверку кодов возврата никто не отменял)
2. какие таймауты? jesputgetto? см 1. выше) запущенное задание синхронизируется с ftp get, здесь имееет место событийный механизм

у предложенного способа на самом деле есть недостатки:
- необходимо указывать userid/password в netrc или в командах ftp;
- нужна авторизация пользователя для submit
а достоинство у него только одно - универсальность. Выполняемое задание может использовать TSO, ISPF, QMF и вообще все что угодно. Это подтвреждает тезис что ж..а - универсальный интерфейс)))

Альтернативы конечно же есть, можно непосредственно вызывать программу из USS REXX с помощью linkmvs или call распределив требуемые DD с помощью bpxwdyn, для SDSF это будет выглядеть примерно так:
call bpxwdyn 'alloc fi(isfout) space(1,3) cyl new'
call bpxwdyn 'alloc fi(isfin) space(1,1) tracks new'
cmd.0 = 3
cmd.1='PREFIX' pref
cmd.2='OWNER *'
cmd.3='DA'
address mvs 'execio 'cmd.0' diskw isfin (finis stem cmd.'
address linkmvs 'sdsf prm'
address mvs 'execio * diskr isfout (finis stem out.'
call bpxwdyn 'free fi(isfout)'
call bpxwdyn 'free fi(isfin)'

так Вам больше нравится?

Сообщение отредактировал Gregory - Пт, 11.02.2011, 23:56
 
slДата: Сб, 12.02.2011, 00:07 | Сообщение # 7
Лейтенант
Группа: Проверенные
Сообщений: 55
Репутация: 0
Статус: Offline
Quote (Gregory)

1. если задержали входную очередь или задание выполняется дольше, чем jesputgetto, ftp get завершится с ошибкой

Ну. Т.е. для того чтобы выполнилась ПРИМИТИВНАЯ проверка - должна быть включена лампочка, а телевизор выключен, занавески зеленого цвета и банк должен быть открыт. Хоть одно условие не выполнено - работать не будет. Слишком много зависимостей от посторонних факторов для хреновины, которая должна работать в полностью автоматическом режиме.

Этот способ был бы вкусным, если б можно было прямо со своего хоста зайти на ftp z/OS, минуя USS. Но я так понимаю, что ftp-клиент нужен исключительно IBMовский...

Quote (Gregory)
Альтернативы конечно же есть, можно непосредственно вызывать программу из USS REXX с помощью linkmvs или call распределив требуемые DD с помощью bpxwdyn

Вот это интересней, спасибо!
 
GregoryДата: Сб, 12.02.2011, 00:24 | Сообщение # 8
Генерал-майор
Группа: Доверенные
Сообщений: 482
Репутация: 22
Статус: Offline
Quote (sl)

Ну. Т.е. для того чтобы выполнилась ПРИМИТИВНАЯ проверка - должна быть включена лампочка, а телевизор выключен

О дааа... машина тожна быть включена, z/OS загружен и т.д. )))

Quote (sl)
Этот способ был бы вкусным, если б можно было прямо со своего хоста зайти на ftp z/OS, минуя USS. Но я так понимаю, что ftp-клиент нужен исключительно IBMовский...

этот способ работает для любого ftp клиента, штатного windows в том числе. quote site - команда сервера.

Добавлено (12.02.2011, 00:24)
---------------------------------------------
в моей практике имел место проект, выполненный для z/OS с использованием только FTP, а точнее, total commander.
выглядело это следующим образом - исполнители правили код, копировали его в определенный набор данных (для них это было просто "некое определенное место"), затем запускали опять таки в total commander выданное им задание, то есть выполняли некое стандартное действие и там же смотрели результат. Честно сказать, в начале я сам не очень верил в успех этой затеи... но все было вполне успешно сделано. Суть проекта заключалась в конвертировании кода, написанного на одном языке, в другой язык, причем заказчик требовал лишь безошибочную компиляцию

 
slДата: Сб, 12.02.2011, 00:36 | Сообщение # 9
Лейтенант
Группа: Проверенные
Сообщений: 55
Репутация: 0
Статус: Offline
Quote (Gregory)
этот способ работает для любого ftp клиента, штатного windows в том числе. quote site - команда сервера.

Пардон, я перед этим как раз читал про отправку SQL-запроса smile

Ну да, действительно, можно любой клиент, но job надо туда закинуть отдельной операцией. Отчего "красивость" метода слегка страдает smile Хотя - уговорил, попробую smile

Спасибо.

 
GregoryДата: Сб, 12.02.2011, 00:45 | Сообщение # 10
Генерал-майор
Группа: Доверенные
Сообщений: 482
Репутация: 22
Статус: Offline
quote site filetype=jes -- передаем задания
get my.jcl my.output -- файл с заданием локальный, выполнение задания синхронизировано
quote site filetype=seq -- передаем файлы а не задания
put my.jcl remote.jcl
quote site filetype=jes -- передаем задания
put remote.jcl -- файл с заданием в z/OS, выполнение задания асинхронное, рut завершается сразу после запуска
...
dir -- смотрим состояние задания

к сожалению, из известных мне визуальных ftp-клиентов интерфейс ftp-jes понимает только bluezone и total commander благодаря тому что его можно настраивать. проблема в разборе ответа LIST. кстати по этой же причине многие клиенты не работают с файловой системой MVS - не могут разобрать список... С файловой системой USS работают практически все.

Сообщение отредактировал Gregory - Сб, 12.02.2011, 00:49
 
slДата: Сб, 12.02.2011, 13:29 | Сообщение # 11
Лейтенант
Группа: Проверенные
Сообщений: 55
Репутация: 0
Статус: Offline
Сделал через ftp. Да, работает. Но - сложно, медленно, какает на консоль (что весьма раздражает - и без того надо часто давить на кнопку), и еще требуется доделка - удалять задание из выходной очереди, после чего станет еще сложнее. Т.е. сложность решения не соответствует сложности задачи. Принципиально - да, работоспособно, но мое эстетическое чюйство такое решение не приемлет smile

PS При этом ftp ОЧЕНЬ УДОБЕН когда я отлаживаюсь и запускаю задания ручками. Тут говорить нечего, и пропаганда не нужна.

Сообщение отредактировал sl - Сб, 12.02.2011, 13:38
 
EHabarovДата: Сб, 12.02.2011, 13:30 | Сообщение # 12
Майор
Группа: Доверенные
Сообщений: 86
Репутация: 7
Статус: Offline
Добрый день!

Могу предложить еще один вариант решения.

Достаточно давно существует утилита MXI (MVS eXtended Inform) авторства Rob Scott.
Исходный код и готовые модули доступны на сайте CBTTAPE под именами File N409 и File N410 соответственно.
Ссылка на страницу со списком файлов: CBT V480 Final Version - January - 16 - 2011

Этот набор утилит позволяет получать очень много полезной информации в весьма удобном и наглядном виде.
С моей точки зрения - этот набор утилит - один из лучших, постоянно использую в работе.
Утилиты можно исполнять через ISPF, в пакетном режиме и через REXX-интерфейс.
Полное описание есть в File N409, вместе с исходными кодами.

В данном случае нужен REXX-интерфейс.
Шаг 1. Распаковать библиотеку загрузочных модулей MXI.
Шаг 2. (Опционально)APF-авторизовать библиотеку загрузочных модулей MXI.
Часть команд MXI выполняется только в авторизованном режиме. Подробности есть в документации.
Шаг 3. Написать REXX-скрипт для вызова MXI.
Пример "Получение списка всех онлайн-дисков системы" (dasdlist.rexx):

Code
/* REXX */
say "Caling MXIREXX"
rcode = MXIREXX('line.','NOTITLES','SET DSCB ON','DASD')
say "retcode="rcode
i = 1
do line.0
    say line.i
    i = i + 1
    end
exit

Шаг 4. Сделать rexx-скрипт исполнимым
Code
chmod +x dasdlist.rexx

Шаг 5. Тем или иным образом добавить библиотеку MXI в список поиска загрузочных модулей.
Code
export STEPLIB=HEV.V480.FILE410.PDS

Шаг 6. Запустить скрипт
Code
./dasdlist.rexx

Результат:
Code
Caling MXIREXX
retcode=0
Z1BRES 0300 3390-9  23303  15454  1550  1030  10542   84 Sto Actv            99
Z1BCAT 0301 3390-9   5359   5175   356   345  11126   96 Prv Actv            22
Z1BUSS 0302 3390-9  52568  52560  3504  3504  11185   65 Prv Actv             0
Z1BLGR 0303 3390-9 149449 149445  9963  9963   2982    0 Prv Actv LOGGER      0
Z1BSMP 0304 3390-9  88226  60702  5876  4046  11126   41 Prv Actv            83
Z1BDLB 0305 3390-9  35734  11214  2222   747  10659   76 Prv Actv           354
Z1BBMR 0306 3390-9 109550 109549  7303  7303   1482   27 Prv Actv             0
DB2ZOS 0307 3390-9  58241   9495  3755   632   2415   61 Prv Actv           362
TIV620 0308 3390-9  41159  35921  2740  2394   2792   72 Prv Actv            40
WSS700 0309 3390-9  76463  44185  5094  2945   2958   49 Prv Actv           118
WSS70A 030A 3390-9  43099  39720  2872  2648   2976   71 Prv Actv            28
FRE325 030B 3390-9  87430  70725  5824  4715   2692   41 Prv Actv DBTA       48
LCER01 030C 3390-9 382953 382953 25530 25530   2925   22 Prv Actv DBTA        0
LCER02 030D 3390-9 384602 384602 25640 25640   2911   21 Prv Actv DBTA        0

PS : Пример скрипта сделан "на коленке". Если интересно - функционал скрипта можно запросто расширить.


Сообщение отредактировал EHabarov - Сб, 12.02.2011, 13:32
 
GregoryДата: Сб, 12.02.2011, 21:47 | Сообщение # 13
Генерал-майор
Группа: Доверенные
Сообщений: 482
Репутация: 22
Статус: Offline
Quote (EHabarov)
CBT V480 Final Version - January - 16 - 2011

Спасибо, интересно!

Quote (sl)
какает на консоль (что весьма раздражает - и без того надо часто давить на кнопку), и еще требуется доделка - удалять задание из выходной очереди

напишите простой bat файл с перенаправлением вывода...
@echo off
rem cancel hanging TSO session on the remote host

rem The following 4 statements must be modified to fit your environment!
set host=z
set userid=IBMUSER
set passwd=********
set account=(12345),'ME',MSGCLASS=X
set sdsfcmd=DA

set tempdsn=CANCEL.$$TEMP$$.DATA
set tempjcl=CANCEL.$$TEMP$$.JCL

if $%1==$? goto help

rem create job to cancel yourself via SDSF
echo //%USERID%$ JOB %account% > cancel.jcl.temp
echo //CANCEL EXEC PGM=ISFAFD >> cancel.jcl.temp
echo //ISFOUT DD SYSOUT=* >> cancel.jcl.temp
echo //ISFIN DD * >> cancel.jcl.temp
echo SET CONFIRM OFF >> cancel.jcl.temp
echo %SDSFCMD% >> cancel.jcl.temp
echo ++ALL >> cancel.jcl.temp
echo PRE %USERID% >> cancel.jcl.temp
echo FILTER JOBID EQ TSU* >> cancel.jcl.temp
echo FIND '%USERID% ' >> cancel.jcl.temp
echo ++P >> cancel.jcl.temp
echo RESET >> cancel.jcl.temp
echo // >> cancel.jcl.temp

rem create FTP batch file to submit job
echo user %userid% %passwd% > cancel.ftp.temp
echo quote site filetype=seq >> cancel.ftp.temp
echo quote site recfm=fb lrecl=80 blksize=32000 >> cancel.ftp.temp
echo ascii >> cancel.ftp.temp
echo put cancel.jcl.temp %tempjcl% >> cancel.ftp.temp
echo quote site filetype=jes >> cancel.ftp.temp
echo get %tempjcl% cancel.job.output >> cancel.ftp.temp
echo quote site filetype=seq >> cancel.ftp.temp
echo del %tempjcl% >> cancel.ftp.temp
echo quit >> cancel.ftp.temp

rem submit job, wait for completion and get the output
ftp -s:cancel.ftp.temp -n %host% > cancel.ftp.output

rem check the output somehow
findstr /c:" COMMAND ISSUED " cancel.job.output > NUL
if errorlevel 1 goto fail
echo %USERID% session cancelled
del cancel.ftp.temp > NUL
del cancel.jcl.temp > NUL
exit

:help
echo Function:
echo Cancel hanging TSO session on the remote z/OS host
echo Syntax:
echo cancel
exit

:fail
echo Cancel failed, examine cancel.job.output and cancel.ftp.output for detail
exit

а если использовать программный API к FTP например в OOREXX то вообще все можно делать очень культурно

 
slДата: Пн, 14.02.2011, 22:02 | Сообщение # 14
Лейтенант
Группа: Проверенные
Сообщений: 55
Репутация: 0
Статус: Offline
Чего-то я REXX не нахожу ...
find / -type f -name '*rexx*' выдал мне кучку файлов с расширением .rexx, и ни одного кандидата на должность...
Ламерский вопрос: он там должон быть по умолчанию, или его доставляют те кому нужен ?
 
GregoryДата: Вт, 15.02.2011, 01:25 | Сообщение # 15
Генерал-майор
Группа: Доверенные
Сообщений: 482
Репутация: 22
Статус: Offline
Quote (sl)
Чего-то я REXX не нахожу ...

http://www.oorexx.org, http://sourceforge.net/projects/oorexx/

Изначально это это был IBM Object REXX for Windows, года полтора назад IBM прекратила его поддержку и объявила Open Source. В настоящее время развиваются версии Windows/Unix/Mac, есть попытки портации на другие платформы в том числе и в z/OS (REXX TSO, REXX USS, OOREXX - различные диалекты). Еще одна популярная кросс-платформенная реализация REXX - Regina REXX http://regina-rexx.sourceforge.net/

См. также http://www.rexxla.org (REXX Language association).

Когда-то IBM включила REXX в свою концепцию SAA [почившую даже не успев толком родиться :-)] и реализовывала его во все свои операционные системы - OS/2 (Object REXX), PC DOS (PC DOS REXX), OS/390 (TSO REXX + USS REXX), VM (original REXX).
Подробный обзор истории развития REXX можно посмотреть здесь http://www.rexxla.org/links/IBM_historical_pages/history.html

Сообщение отредактировал Gregory - Вт, 15.02.2011, 01:35
 
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: