Скрипты на REXX


Здесь представлены программы, написанные на языке REXX, который входит в стандартную поставку всех выпускаемых фирмой IBM операционных систем, и, кроме того, перенесён на многие диалекты *nix (FreeBSD, Linux, Solaris, etc.) и даже на MS Windows. Эти программы можно рассматривать не только как полезные утилиты, но и как примеры программирования на REXX.

Если у вас есть скрипт, который может оказаться полезным кому-то ещё, и вы хотите сделать этот скрипт общественным достоянием, присылайте его для опубликования Игорю Васькову.

09.09.13 Открылся новый сайт про Rexx.

25.04.11 rxcalcnet.zip -- Victor Smirnoff
Калькулятор подсетей на REXX.

22.04.10 rxFtpTree.zip -- Victor Smirnoff
Скрипт позволяет строить дерево каталогов Ftp-сервера и создает файл с деревом следующего вида:
/
     TRADEMARKS.TXT
     ftp -> software/lotus
     pub -> software/lotus
     robots.txt
     /4700
     /aix
     /annualreport
     /as400
     /bin
     .................
Возможный вариант запуска выглядит следующим образом:
X:\rxFtpTree>rxFtpTree.cmd ftp.boulder.ibm.com

rxFtpTree v0.04   (C)opyLeft VicTor Smirnoff, 2010     xxxxxx@rambler.ru

Start: 22 April 2010 22:32:07

REXX FTP API Version is 2.1
         Remote Host is ftp.boulder.ibm.com
    Remote Host User is anonymous
Remote Host Password is anonymous@guest.ftp
     Start Directory is /
         Output File is .\ftp.boulder.ibm.com.dir
 Ping to Remote Host is 210 ms
 Connect to Remote Host (wait please)
      Remote Host OS is UNIX Type: L8
            FTP Mode is Passive
Real Start Directory is /

If you want to break the execution, then press Ctrl-C at any time.

/
Finish: 22 April 2010 22:32:12   (started at 22 April 2010 22:32:07)

27.04.03 isomount.zip -- Dmitry Ban
Скрипт позволяет удобно монтировать/размонтировать ISO images с помощью NDFS с плагином ndpiso. Чтобы монтировать/размонтировать исошки нажатием на Enter в FC/2, добавьте в секцию [Associations] файла fc.ini такую строчку:
*.{iso,trk,nrg}: isomount.cmd !f
Полный синтаксис:
Syntax: isomount [-vbcwh] image_file
  Keys: v - verbose
        b - beep on errors
        c - change directory to mounted resource
        w - view mounted resource in WPS
        h - help
  image_file: full path to ISO or RSJ image file
              or its name, if mounting from current directory

First launch mounts ISO|RSJ image specified to NDFS tree.
Second launch with the same parameters unmounts it.

08.02.02 pppserv.zip -- Andrey Vasilkin
Скрипт занимается обработкой входящих PPP соединений на нескольких портах. Ведётся статистика на каждого пользователя (общее время на линии, последний звонок, входящий/исходящий трафики)

15.12.01 foreach2.zip -- Alexey Stratonnikov
Доработка скрипта foreach:
Usage: foreach [-?rlvVdDRx] <filespec> <command>
-? : this help
         -r : search subdirectories
         -l : list found files
         -v : type command before executing
         -V : type command without executing
         -d : include directories
         -D : directories only
         -R : use relative paths when possible
         -x : execute REXX command ('file' variable gives filename)
  {} in command will be replaced with filename
  Use @ as empty command

19.11.01 pyrxutil.html -- Юрий Погребняк
...вместо примера к описанию библиотеки получилась весьма, по-моему, неплохая вещица:
  • пути в виде дерева a-la "Go.exe";
  • заголовки окон из списка задач;
  • треды для каждого процесса, опять же с ползунками использования системного времени (цвета для IDLE тредов отличаются);
  • динамика загрузки ЦПУ.

18.09.01 rxnslookup.zip -- VicTor Smirnoff
Очень удобная замена nslookup, особенно для массового просмотра и создания списков.

13.03.01 killdup.zip -- hungryewok@mail.ru
Скрипт для поиска и убирания дубликатов в фидобазах *.msg

12.02.01 makeHref.zip -- Evgeny Kotsuba
Вашему вниманию предлагается набор двух скриптов, помогающих при "разборе полётов" при работе с прокси-сервером. С их помощью можно пройтись по всем урлам, которые запрашивались вашим прокси-сервером, причём это не требует длительного ожидания, поскольку запрашиваемые объекты, как правило, уже нахожятся в кэше.

Оба скрипта на выходе создают html-файл со ссылками, отстортированными в алфавитном порядке, ссылки берутся в случае makeHref_log.cmd из логфайла прокси-сервера, а в случае makeHref.cmd -- из сохраненного в виде HTML-файла ответа кэш-менеджера на запрос "In-Memory and In-Transit Objects". Прокси сервер в моём случае -- squid.
Использование:

makeHref.cmd cachemgr.html MyAnaliz.html
makeHref_log.cmd access.log  MyAnalizLog.html
Для сортировки данных потребуется ещё утилита bigsort, которая берётся на Хоббесе, но для комплекта положена в архив. Между прочим, рекомендация -- выкинуть нафиг стандартный sort и использовать вместо него bigsort.

Единственная неприятность, с которой можно столкнуться -- это размер html-файла, который может оказаться неподъёмным для вашего браузера. В этом случае вы можете легко модифицировать скрипты для получения набора html-файлов.

22.07.00 math.zip -- saa@dgap.mipt.ru
Набор скриптов, реализующих функции SIN, COS, EXP, POW, SQRT, PI, и скрипт для вывода числа с бОльшим, чем по умолчанию, количеством знаков после запятой.

01.06.00 cddb.zip -- Sergey Gryaznov
Скрипт для получения информации об аудио-CD из CDDB. Вставьте компакт-диск и запустите cddb.cmd.
Дополнительные ключи:
  • -SEL:x
    Помогает в том случае, если в базе найдено несколько записей для вашего компакт-диска. Пример:
    Connecting to: 216.200.155.32:8880
    Connected: OK
    201 cddb8.cddb.com CDDBP server v1.4.1b18PL0 ready at Wed May 31 14:07:10 2000
    200 Hello and welcome Stalker@os2.ru running OS/2_rexxCDDB 1.21.
    1) newage 9f0ffd0c Enigma 4 / Metamorphosis
    2) newage a0101e0c Enigma 4 / Metamorphosis (Fake Russian 'Bootleg' album)
    CDDB0007: Incomplete record(s) found. Please use '-SEL:x' option
    
    Запустите cddb -SEL:1 для того, чтобы получить информацию об "Enigma 4 / Metamorphosis", и cddb -SEL:2 для "Enigma 4 / Metamorphosis (Fake Russian 'Bootleg' album)", соответственно.
  • -ren:name
    Скрипт будет автоматически переименовывать файлы MP3, если они имеют имена вида name.X.mp3, где X=[A..Z] -- порядок трека.

23.01.00 обновлён 01.06.00 calendar2.zip -- Sergey Gryaznov
Скрипт, рисующий календарь на заданный месяц. Помечает праздничные дни, в том числе прогнозирует переносы нерабочих дней в том случае, если праздник пришёлся на выходные. Также может помечать дни рождения знакомых, если записать нужные даты в специальный файл.

27.04.00 cplay.zip -- ewok
Текстовый шелл для проигрывания MP3, умеет делать пpокpутку, показывать тэги в двух кодиpовках, вpемя пpошедшего/оставшегося вpемени, хаpактеpистики файла, pегулиpует гpомкость, показывает имя пpоигpываемого файла, показывает текущую позицию ползунком и делает пpокpутку.

24.04.00 foreach.zip -- Andrey Zakharchenko
foreach.cmd - выполнить команду для всех файлов, соответствующих указанному шаблону.
foreach [-rlv] <шаблон> <команда>

21.04.00 checkpoint.html -- Степан Трубачёв
...Таким образом, Константину хватило таких стандартных средств OS/2, как Rexx и iptrace для того, чтобы победить и CheckPoint, и собственного администратора файрволла :) Обратите внимание на то, что приведенный скрипт представляет собой полноценный сервер, обслуживающий TCP соединения, так что при желании можно и httpd и ftpd на rexx написать :)

29.01.00 site.zip -- horizon
Этот простой скрипт перебирает по порядку все адреса хостов сети класса С (mask=255.255.255.0) из заданного диапазона и вызывает для них команду host. Результат выводится в файл. Сделана для собственных нужд. Если кому поможет сохранить время, буду счастлив.

29.01.00 chkimap.zip -- sergey_k@prtb.com.ru
Ещё один mail checker на REXX, но для IMAP4 сервера. Скрипт отобpажает в виде иконки на десктопе состояние почтового ящика (IMAP4). Двойной щелчок мыши по иконке запускает почтовую программу. Основан на скрипте аналогичного назначения для pop3 (chkmail.zip / 22.04.99 by Andrew Alexeyenko), откуда, собственно, и взята большая часть скрипта. Переделана процедура проверки почты, изменён звуковой сигнал и ещё кое-что по мелочи.

01.12.99 pm123pls.zip -- Dmitry I. Platonoff
Почему-то выяснилось, что под пополамой нечем играть shoutcast'овские потоки (это броадкаст в mp3). Точнее, играть есть чем, а вот плейлисты, которые на сайтах тут и там лежат, никто не понимает. Можно, конечно, его скачивать, руками из него выковыривать URL и скармливать тому же mp123 или pm123. Но это неинтересно.

В общем, пришлось написать скриптик. Зато теперь можно в Нетскейпе мышой тыкать -- и играет. Hе знаю, конечно, насколько это интересно -- развлечение-то буржуйское, без толстого канала смысла не имеет. Но всё же...

Этот файлик нужно ассоциировать с типом .pls в WPS, а также прописать как обработчик маймового типа "audio/x-scpls". И телемаркет. :)

Да, вызов pm123 в скрипте можно также заменить на mp123 -- он тоже работает. А если всё-таки хочется пользоваться этой PM'ной игралкой, то в ней надо включить autoplay, а то происходит интересная штука -- он коннектится, но не играет, приходится ещё кнопочку Play в нём давить :)

19.10.99 rc.zip -- Sergey Gryaznov
Скрипт в несколько строчек, позволяющий прочесть кириллицу, по ошибке набранную латинскими буквами (не в том регистре клавиатуры). Yfghbvth? djn nfr/

10.10.99 md5chk.zip -- Vadim Yegorov, Joseph Shrago
Данный набор утилит предназначен для создания списка файлов каталога с генерацией md5 summ каждого файла. Основная цель: использование при подготовке CD для последующей проверки (copy /dev/nul бывает мало ;). Причём проверки не под OS/2 (или не столько под OS/2 :): все исполняемые файлы сделаны как dual boot execs. Делалось исключительно для и "под" себя.

12.09.99 sm2.zip -- Timur Kazimirov
Я довольно долгое время пользуюсь вот этими своими скриптиками (плагиат, конечно, но автора уже и не вспомню, да и модернизировал я рексовый чуток). Может, общественности и пригодится.

Идея такая: используя сокеты, отправить мессагу по SMTP вместо вызова sendmail'а. Скрипты, имеющие расширение NRX, суть то же самое, но на NetRexx'е.

12.09.99 ipload11.zip -- Oleg Kostiuchenko
Модифицированный ipload (версия 1.1) с возможностью сбора статистики как по входящему, так и по исходящему траффику по всем интерфейсам - lan0-9, lo и ppp0-1.

03.09.99 ipload.zip -- Joseph Shrago
Скрипт IPLOAD.CMD предназначен для накопления статистики об исходящем трафике. Те, кому нужен и/или входящий легко допишут или перепишут нужные места. Скрипт предназначен для однократного ежесуточного запуска каким-нибудь планировщиком типа CRON. Скрипт формирует два файла статистики: нарастающий итог и суточную нагрузку.
Спасибо Chill за идею.

20.08.99 Tips -- Vitalie Vrabie
Скрипт берет стрОки из stdin и плюет их в stdout с интервалом в одну секунду. Зачем? Для irc. Иногда бывает нужным сделать /exec -o <что-то-там> (-o - с выводом в окно: канал/приват/dcc), а команда возьми да и выплюнь с полэкрана информации за раз.

14.08.99 Tips -- Alexander Anisimoff
Небольшой скрипт, играет все доступные mp3 файлы.

10.08.99 Набор скриптов -- Anton Dushko
calendar.zip
пpостенький текстмодовый календаpик с подсветкой пpаздников
hfb.zip
генеpатоp HTML файллиста по files.bbs
mixer930.zip
командлайновый миксеp для OPTi930 (легко пеpеделывается под любую дpугою звуковую карту), с некотоpым подобием документации
mpx2all.zip
пpописывает инфоpмацию из заголовка/id3 тэга mp3'шника в files.bbs и/или EA, с некотоpым подобием документации
rexxmp.zip
текстмодный медиаплееp, с некотоpым подобием документации
iniarc.zip
аpхиватоpоподобный .ini менеджеp

23.07.99 kzmrexx.zip -- V.Kazimirchik
Небольшая коллекция REXX-скриптов, написанных в разное время для собственного использования. Возможно, будут кому-то полезны. Что там:
\astra
Борьба с !message.* у "Астры" (кто пользуется - тот поймёт) и разбор Log'а на предмет выявления принятых файлов. Нужно далеко не всем, но всё-таки...
\auto
Sheduler. Примитивен до ужаса, но работает месяцами.
\fileutil
Мелкие утилиты для массовой обработки файлов.
\viewer
File viewer. Писался в свое время в качестве обучения REXX'у. Требует ANSI ON, подробности - внутри eye.cmd.

20.07.99 calc.zip -- Evgeny Kotsuba
"Русский народный калькулятор" был написан в своё время по причине неудобства предлагаемых Тимуром скриптов для расчётов с промежуточными результатами. Calc.cmd позволяет использовать произвольное количество переменных, а кроме того, позволяет производить инкрементальные вычисления, например:

Русский наpодный калькулятоp v0.01
Введите выpажение или Q для завершения
3.12
X= 3.12
+5
X= 8.12
/(2+3)
X= 1.624
Y=123
Z=Y+12
X+Y-Z
X= -10.376

17.07.99 Tips -- Вадим А. Сухоруков
Замечательный скрипт был впервые мной обнаружен в README к OS/2 2.1, затем был замечен в документации к версии 3. Изначально замещал System Proportional ISO на non-ISO шрифт.

12.07.99 Tips -- Timur Hi-Rullin
...Два скрипта, простых, как мычание. Их даже нету смысла пристегивать в виде файла, настолько они коротки, и, в тоже время, лично я не представляю себе без них жизни в OS/2...

07.07.99 cureriff.zip -- Andrew Cherepivsky
Скрипт излечивает кривой RIFF-заголовок в некоторых аудиомпегах (при попытке проиграть такие файлы выдаётся сообщение "слишком высокая частота дискретизации").

08.06.99 fixDC001a.zip -- Alex Porollo
В пакет исправлений к DC User Pack включен очень быстрый скрипт от Alex Porollo, написанный на базе этого пакета и предназначенный для выдёргивания приаттаченных файлов из писем. Обрабатывает целиком почтовый ящик, который может содержать любое количество писем. Письма могут содержать приаттаченные файлы как в формате UUencode, так и в формате Base64. Кроме того, скрипт умеет корректно декодировать файлы из фрагментированных аттачей в произвольной последовательности.

09.05.99 del0d.zip -- Олег Булыгин
Netscape по непонятным мне причинам имеет практику вставления дополнительного символа 0Dx в последовательность 0Dx,0Ax (перевод строки). Данный скрипт удаляет один символ 0Dx из последовательности 0Dx,0Dx,0Ax в *.Htm и *.Html в текущей директории

06.05.99 fingergw.zip -- Vitali Pelenyov
Пример CGI скрипта. Предполагается, что fingergw.cmd расположен в /cgi-bin, a fg.htm -- где угодно (например, в корневом каталоге). fg.htm создает форму для ввода имени пользователя и адреса хоста, на который надо запустить finger. fingergw.cmd возвращает результаты выполнения команды finger.

01.05.99 prtscan_new.zip -- Dmitriy Mihantyev
Несколько усовершенствованная версия скриптов portscan1 и portscan2 от Andrew Alexeyenko. Отличатеся тем, что:
  1. принимает не только адрес, но и имя хоста;
  2. пользует оригинальный services из %ETC%;
  3. при выводе печатает порт, название сервиса, комментарий если есть в services, или попросту unknown port.

29.04.99 ipkill.zip -- Felix Herbeck
Набор из двух скриптов: ipscan.cmd сканирует адреса в указанной подсети и и выдает на stdout и в файл (если он задан) адреса отозвавшихся хостов, а ipspeed.cmd проходится по этим хостам программкой jolt. Может применяться для "ускорения Интернета".

27.04.99 ksock.zip -- Timur Kazimirov
Набор из двух скриптов: killsock.cmd закрывает или отдельный сокет, или все, находящиеся в состоянии CLOSE_WAIT (это для тех, у кого emx нефиксенный), а killuser.cmd закрывает все сокеты для определённого IP-адреса - можно отпугивать таким образом "ненужных" людей.

23.04.99 mp3.zip -- Sergey Gryaznov
Набор из двух скриптов: make_mp3.cmd для автоматического создания мпегов с CD, и mp3.cmd для их воспроизведения в том порядке, в котором треки лежали на CD.

23.04.99 dyn_bkg.zip -- Sergey Gryaznov
Через заданные промежутки времени меняет фоновую картинку на десктопе.

22.04.99 portscan.zip -- Andrew Alexeyenko
Пpоизводит сканиpоване доступных tcp-поpтов на указанной машине. возможны 2 ваpианта: portscan1.cmd производит сканиpование заданного диапазона портов, portscan2.cmd -- сканиpование по описанию из файла (типа etc\services).

22.04.99 chkmail.zip -- Andrew Alexeyenko
Скрипт отобpажает в виде иконки на десктопе состояние почтового ящика (pop3). Двойной щелчок мыши по иконке запускает почтовую программу.

19.04.99 cr.zip -- Vladimir Komarov
Check reference. Проверка ссылок в HTML-файле в тагах <A HREF...> и <IMG SRC...>. В интернет не выходит и внешние ссылки не проверяет, но для проверки собственных сайтов годится.

19.04.99 tf.zip -- Vladimir Komarov
Text formatter. Форматирование текста a la Лексикон с разбивкой на абзацы, выравниванием по левому краю или по ширине, заменой коротких тире на длинные, уничтожением переносов... Распознает абзацы по красной строке, по пропуску строчки или считает отдельным абзацем каждую строку. Вот это действительно может быть неплохим примером программирования на REXX :)

19.04.99 open.zip -- Vladimir Komarov
StarDock'овский скрипт, позволяющий открыть объект из командной строки. Полезен, например, для прописывания в ассоциациях File Commander'у, чтобы ассоциации, назначенные в WPS, работали и из командной строки тоже.

19.04.99 rfingerd.zip -- Vitali Pelenyov
Архив содержит файлы fingerd.cmd -- демон на REXX, и f.cmd -- дополнительный файл, stdout которого отправляется клиенту.
Это очень простой демон. Он слушает порт 79 и отвечает на любое соединение, посылая какой-либо текст. Текст генерируется командным файлом, который получает строку запроса клиента как параметр.
Хотя сам по себе демон не представляет практической ценности, его можно использовать как заготовку для более сложной программы.

17.04.99 charsetw327f.zip -- Sergey Afonin
Скрипт для почтовой программы PMMail/2, который позволяет нормально читать письма в кодировках, отличных от общепринятой koi8-r, а также письма с неправильно указанной кодировкой (этим грешат MS Outlook и Messenger из Netscape Communicator 4.0x.
В написании скрипта участвовали Dmitry Irtegov, Sergey Afonin, Vladimir Komarov, Vitali Pelenyov и Victor Pashkevich. Новые версии скрипта выкладываются на ftp.kraft-s.ru под именем charsetwXXXX.rar, где XXXX -- номер версии.

17.04.99 rtf2os.zip -- Joseph Shrago
Некоторые файлы в формате RTF почему-то не читаются в LSS 1.1. После обработки этим скриптом они начинают читаться. Загадкой для меня является не этот факт, а тот, что некоторые файлы в формате RTF читаются и так, без обработки. Короче, если ваш LSS не читает RTF-файл -- попробуйте этот скрипт, может быть, он поможет. Скрипт затрагивает только представление и кодировку символов. Описание шрифтов он не трогает (сделайте это сами), поэтому документ все равно будет выглядеть безобразно; сделайте select entire document и установите шрифт Courer или Helvetica -- полегчает.
Работает он, правда, медленно, но что вы хотите -- RTF есть внутренний формат одной очень хорошо известной фирмы на букву М :)

17.04.99 ruuen.zip -- Max Alekseyev
UUEPoster и UUEncoder.
UUEPoster заточен на FMail, но легко поддается настройке на любой другой тоссер.

17.04.99 rdir.zip -- Sergey Gryaznov
Этот скрипт просматривает дерево каталога, указанного ему в качестве параметра, и выдаёт информацию об общем количестве файлов и подкаталогов, а также о суммарном объёме файлов в виде "xxxx files, in yyy directories, occupying zzzzz bytes".

17.04.99 whois.zip -- Dmitry Maximovich
В комплекте поставки утилит tcp/ip для OS/2 почему-то отсутствует утилита whois. whois позволяет просматривать базу данных доменов, зарегестрированных в Network Information Center (NIC). Описание протокола можно прочитать в RFC 812.

17.04.99 wwwget.zip -- Dmitry Maximovich
Простейшая утилита, послылающая запрос "GET" на адрес httpd и выдающая ответ сервера на stdout. Позволяет увидеть служебную информацию в ответе сервера, которую обычные браузеры не показывают. Например, узнать версию и модель www-сервера:

D:\wwwget ru2.halfos.ru | fgrep Server:
Server: Apache/1.3.4 (OS/2) PHP/3.0.6 ApacheJServ/1.0b2 rus/PL27.4

17.04.99 dbf2csv.zip -- Dmitry Maximovich
Весьма полезная, на мой взгляд, утилитка, позволяющая преобразовать файл формата dbf в обычный текстовый файл формата csv (comma separated values). Наверное, в каждой фирме есть унаследованные приложения, написанные на Clipper или FoxPro, и эта утилита позволит Вам легко переносить информацию из этих программ в ваш сервер Oracle ;).
Данная утилита использует shareware-библиотеку rexxbase.dll компании American Coders, LTD.


Новые статьи на нашем сайте:


Комментариев к странице: 0 | Добавить комментарий
Домой | Проект ядро Core/2 | Проект OS/4 Download | Новости | Гостевая книга | Подробно обо всем | Нужные программы | Проекты | OS/2 FAQ | Всячина | За и Против | Металлолом | #OS2Russian | RDM/2 | Весёлые картинки | Наша галерея | Доска объявлений | Карта сайта | ПОИСК | ФОРУМ