Господа, если не трудно, поделитесь опытом на тему $subj. Возможны ли такие штуки как посмотреть оглавление тома/библиотеки , свободное место на томе, чего есть запущенного ? Если нет готовых команд, то может есть хоть API, позволяющий такие штуки делать ?
Мне вот очень бы хотелось прицепить z/OS к nagios'у, и проще и логичней всего было б выполнять командочки через ssh. Но в доках пока нашел только возможность копирования файлов MVS-Unix, и то немножко через одно место
Файлы копируются из MVS в USS и наоборот на "ура" обычной командой cp. Далее, многие вещи можно сделать с помощью z/OS FTP сервера. Его функциональность очень разносторонняя. Ну и в USS запросто исполняются REXX-скрипты. А на REXX и готовых утилит написано много и своего можно много написать.
PS: Если будет конкретика, что именно хочется и в каком виде, могу помочь это реализовать. С опубликованием исходников например здесь. Может и еще кто-нибудь подключится к процессу.
Так я написал конкретику: 1. Свободное место на томе 2. Оглавление тома (чтоб дальше его обработать sed'ом и вытащить то что мне в данный момент интересно) 3. Процессы, job'ы (то что SDSF выдает по PS и ST) - для начала мне бы этого для счастья хватило.
На REXX'е я почти ничего не писал, слабо представляю его возможности. Правильно ли я понял, что он имеет встроенные возможности доступа к той информации, что меня интересует ? (Понятно, что обработку полученных строк можно делать в чем угодно, эта возможность REXXа здесь малоинтересна)
А FTP - что хитрого он умеет кроме работы с очередями JES ? Кстати, оглавление тома им можно увидеть ?
наиболее простой способ сделать 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
"Экзотичность" ?! Давайте называть вещи своими именами, в данном случае - через-опность Если серьезно, то мне он не нравится по следующим причинам: 1. Результат работы зависит от слишком многих случайностей. Ну например - задержали входную очередь зачем-то, и опаньки. 2. Время выполнения опять же плавает в зависимости от, таймауты надо ставить по максимуму... Тоскливо! Если учесть цель - чтоб в конце цепочки я получал SMS "Стряслась Опа!" - идея мне не нравится категорически.
У меня через send-expect в adsl-модем выдаются команды rmmod - казалось бы, чего проще ? "Надежность" выполнения этого скрипта - где-то 0.90-0.95
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
1. если задержали входную очередь или задание выполняется дольше, чем jesputgetto, ftp get завершится с ошибкой
Ну. Т.е. для того чтобы выполнилась ПРИМИТИВНАЯ проверка - должна быть включена лампочка, а телевизор выключен, занавески зеленого цвета и банк должен быть открыт. Хоть одно условие не выполнено - работать не будет. Слишком много зависимостей от посторонних факторов для хреновины, которая должна работать в полностью автоматическом режиме.
Этот способ был бы вкусным, если б можно было прямо со своего хоста зайти на ftp z/OS, минуя USS. Но я так понимаю, что ftp-клиент нужен исключительно IBMовский...
Quote (Gregory)
Альтернативы конечно же есть, можно непосредственно вызывать программу из USS REXX с помощью linkmvs или call распределив требуемые DD с помощью bpxwdyn
Ну. Т.е. для того чтобы выполнилась ПРИМИТИВНАЯ проверка - должна быть включена лампочка, а телевизор выключен
О дааа... машина тожна быть включена, 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 выданное им задание, то есть выполняли некое стандартное действие и там же смотрели результат. Честно сказать, в начале я сам не очень верил в успех этой затеи... но все было вполне успешно сделано. Суть проекта заключалась в конвертировании кода, написанного на одном языке, в другой язык, причем заказчик требовал лишь безошибочную компиляцию
этот способ работает для любого ftp клиента, штатного windows в том числе. quote site - команда сервера.
Пардон, я перед этим как раз читал про отправку SQL-запроса
Ну да, действительно, можно любой клиент, но job надо туда закинуть отдельной операцией. Отчего "красивость" метода слегка страдает Хотя - уговорил, попробую
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
Сделал через ftp. Да, работает. Но - сложно, медленно, какает на консоль (что весьма раздражает - и без того надо часто давить на кнопку), и еще требуется доделка - удалять задание из выходной очереди, после чего станет еще сложнее. Т.е. сложность решения не соответствует сложности задачи. Принципиально - да, работоспособно, но мое эстетическое чюйство такое решение не приемлет
PS При этом ftp ОЧЕНЬ УДОБЕН когда я отлаживаюсь и запускаю задания ручками. Тут говорить нечего, и пропаганда не нужна.
Сообщение отредактировал sl - Сб, 12.02.2011, 13:38
Достаточно давно существует утилита 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 в список поиска загрузочных модулей.
какает на консоль (что весьма раздражает - и без того надо часто давить на кнопку), и еще требуется доделка - удалять задание из выходной очереди
напишите простой 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
Чего-то я REXX не нахожу ... find / -type f -name '*rexx*' выдал мне кучку файлов с расширением .rexx, и ни одного кандидата на должность... Ламерский вопрос: он там должон быть по умолчанию, или его доставляют те кому нужен ?
Изначально это это был 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