Chad's Open Systems and Mainframe Utilities



Resume Of Chad Kerner

If you have an opening, and you feel that my skills may fit into your organization, feel free to drop me an email. I can be reached at vmvse@yahoo.com.
Sign Guestbook View Guestbook


As of August 2, 2002, I have completed the Red Hat Certified Engineer exam. For more information, you can view my resume or go to the official Red Hat Verification Site.


I have included some of the programs that I use regularly on my site. You are free to use them as you will. If you see something you like, or are looking for something specific, please drop me an email or sign into my guestbook and leave a message. If I have it, I'll post it and/or email it to you. As time permits, I'll be posting additional software to this site, so you may wish to add me to your favorites. Note: These programs are as is. There is no implied or expressed warranty. Use them at your own risk as I am not liable if you do any harm to your systems with them.



I have recently built several Red Hat Advanced Server clusters that are utilizing the Logical Volume Manager(LVM) functions. I have nearly completed the cookbook for this configuration. I put together a small cookbook containing some of the information for doing this. The html version can be found here. The Microsoft Word version can be found here.

CPAN Perl Modules

Module Description
Linux-LVM-0.11.tar.gz This is a perl interface that can be used to access the Linux Logical Volume Manager(LVM) data structures. It processes a vgdisplay to collect all of the volume group, logical volume and physical volume information from the system.
Linux-MemInfo-0.02.tar.gz This is a perl interface that can be used to access the /proc/meminfo file and extract information on the memory usage of a Linux system.


Perl Utilities

Program Description Output
sync_server.pl I was in charge of identical pairs of sytsems tha tneeded files synchronized across them in case of failure. To do this, I wrote a quick little perl program to copy the files and execute both local and remote commands when the files had been changed. Configuration File
relay_denied.pl One of the tasks I had was to monitor our secure email relay. I would constantly see messages being denied because they weren't in the ACL. We were controlling access via /etc/mail/access. So, I wrote a little perl program to parse the weekly maillog once it had been rotated. Sample Output
guimon.pl A graphical system monitor written with Perl/Tk and the GTop module off of CPAN. This utility just givs an overview of your system. Here is a sample screenshot It displays such items as CPU usage, memory and swap usage, network interface statistics. It also maintains historical data via histograms so you can look back and see past performance. Also, you can get capacity data on file systems. Just a quick and dirty program I threw together to learn Tk. Screenshot
check_security.pl This program was written to perform some basic security audit functions for Solaris, AIX, HP-UX and Linux. The requirement was for a single program to be able to verify the same security checks on any platform at the site. It is in no means a complete check, but it will verify some basic security risks. N/A
ckls.pl Some days my eyes don't want to parse an ls -l listing very easily. I wrote this command to comma delimit the size of the files in a long directory listing. ckls.txt
tabl2xls.pl This utility will take a flat file, such as an extract from the HP MeasureWare database and convert it to an Excel Spreadsheet. It requires the perl module Spreadsheet::WriteExcel in order to function. I pull lots of statistical data and use this one almost daily. N/A

Linux / AIX / HP-UX / Solaris Utilities

Program Description Output
check_security.pl This program was written to perform some basic security audit functions for Solaris, AIX, HP-UX and Linux. The requirement was for a single program to be able to verify the same security checks on any platform at the site. It is in no means a complete check, but it will verify some basic security risks. N/A
MAILFILE This program takes an email address as the first argument and then a list of files(including wildcards) as additional arguments. It will then uuencode and email the files to the address specified so they show up as attachments in the email. Note that this was a very quick and dirty. While useful, I'm sure there are better ways to handle this. N/A
spec This utility is a quick and dirty ripoff of the CMS spec command. It isn't near as functional, but provides some quick and easy column formatting for those making the transition from the CMS world to UNIX. N/A
rmi I finally put this command into a script because I would occasionally forget its syntax. This command takes an inode number and removes the file associated with that number. This is for deleting files with bogus filenames. N/A
killem This command will scan the process list for any matches of the specified parameter and will kill any processes that contain the text. For example, "killem xterm" will kill any xterm session on the system. N/A

VM/ESA & z/VM Utilities

Program Description Output
WHO.EXEC This exec will display a listing of both the connected and disconnected service machines and CMS users. Screenshot
LOOKTERM.EXEC A few years back, we thought we had a security breach on our mainframe. Turns out we didn't, but this utility came in useful for tracking down who was logged in to each machine. The LOOKTERM utility will scan for a specific guest machine and device number(optional) and print the IP Address of the person logged on. Then, you can look up the IP address and track down the user. Screenshot
QT.EXEC When our physical tape drive count grew larger than the CA-DYNAM/T tape status screen, our operations staff wanted a way to quickly display the status of all tape drives and Bustech Datablaster devices. To accommodate them, the QT exec was put together. It would allow them to display all tape devices. Also, they could specify a machine name and display all of the tape drives assigned to a specific machine. Screenshot
CKDSKUSE.EXEC This exec was created to automatically monitor some of the critical service machine minidisks in our z/VM environment. We would have disks that would fill and prevent critical systems jobs from running. This utility is executed once per day via AUDITOR's NEWDAY process. It provides us email alert notification when a minidisk is approaching critical usage limits. Control File
INCACHE.EXEC This exec will look at the current CP QUERY NAMES output and strip out the addresses of the devices that are currently being cached by SDI's CacheMagic product. N/A
ZORK.VMARC This is a copy of the classic Zork game, only it works under CMS. I don't remember where I ran across this, but thought I would preserve it for posterities sake. N/A

VSE/ESA Utilities

Program Description Output
PRINTPUB This REXX program will read the VSE/ESA PUB table and print a list of the devices defined to that system. This has been tested with VSE/ESA 2.3 and may require additional updates to run under a different release of VSE. printpub_rpt.txt
VSAMSUMM This REXX program will read the VSAM master catalog to get a listing of all of the VSAM user catalogs that are defined in the master. Then, it will process a space listing of each catalog and determine how much space is allocated and used for each user catalog. It will also show the percent used for the catalog. vsamsumm_rpt.txt

MVS/ESA & z/OS Utilities

Program Description Output

CMS Pipelines & Rexx/VM

Program Description Output
GRAPHIT.REXX This Pipelines filter came in very handy when I had to plot some graphs of CPU utilization. I didn't want to repeatedly download the data and process it in Excel, so I parsed the data with pipes instead. For the example here, I had a data file called "MY DATA" containing the following values: 10, 50, 30, 20, 90, 88, 85, 80, 60. The file was processed with the following command: 'PIPE < MY DATA A | GRAPHIT |> GRAPH LIST A'. It produced the attached output. GRAPHIT Output

Rexx/VSE Utilities

Program Description Output

CA-VOLLIE Utilities

Program Description Output
OLL Once our development staff got large enough to require many different OLL's, they wanted a quick way to change between them without having to type the full command each time. Therefore, I created a voice proc called "oll" to handle this. Each OLL was given a unique identifier. For example, OLLFIL3 had an identifier of "3". If the user wanted to make that their new default oll, they could just type 'OLL 3', instead of 'DEF OLL=OLLFIL3'. This procedure was also cloned into the 'con' command for concatenated oll files. 'OLL' without any operands displays the currently defined oll. N/A

Current Platform Information

Current Platform Specifics: Current Duties:


Hercules Files

Hercules is a wonderful s/370, s/390 and z/Architecture emulator for Windows and Linux. It is capable of running VSE/ESA, MVS/ESA, z/OS, VM/ESA, z/VM and Linux/390 both in 31bit and 64bit modes. Currently, you can legally run VM/370 Release 6, DOS Release 34, OS/360, and/or MVS 3.8J. This is truly a remarkable tool that is great for training. I have used it to brush up on my MVS JCL and to learn more about the different operating systems.

Main Hercules Site

See who's visiting this page. View Page Stats
See who's visiting this page.

Contact Me

Visitors: Counter

This document was last modified on April 7, 2003.