I originally wrote these REXX programs for my own personal use with BackMaster 1.1 on my home OS/2 Warp system (and has been fully tested on OS/2 2.11), but from what I'd seen in the Compuserve OS2BVEN forum I thought others would find them useful too. If not as is, they can be easily modified to suit your needs. I am releasing these seven programs to the public domain; I only ask that if you make modifications that you feel will be useful to the public at large to please send me a copy so that I might implement them in my own personal copy. Since this is public domain, I also ask that any external function calls utilized by these programs also be freely available to the general public. It does no good to release some programs in the public domain if the user has to pay for a particular component in order for it to run (other than MSR's BackMaster 1.1, of course!). Four of the programs in this archive require the IBM EWS Visual REXX extensions. This is freely available from many sources, including the IBM PC BBS, and the OS2USER forum on Compuserve. It is freeware; IBM retains all rights to the program, but it may be distributed and used free of charge. The file name is most typically VREXX2.ZIP. This archive contains nine files: ReadMe.TXT This file you're reading now BMMenu.CMD A program allowing you to select between a full or an incremental backup of all of your partitions, or to quick erase a number of tapes. BMLog.CMD Display the BackMaster Log file. FullBkup.CMD Perform a full backup of all of your partitions. IncrBkup.CMD Perform an incremental backup of all of your partitions. ZapTapes.CMD Perform a Quick Erase of a set number of cartridges TpFormat.CMD Format a set number of cartridges. FileType.CMD External function to determine a partition file system. Whats.new History of changes made to the programs here. BMMenu.CMD This program allows you to select which type of backup you want to run. Currently, it only allows you a choice of a full backup of all of your partitions, an incremental backup of all of your partitions, or you can quick erase (or format) a number of cartridges in preparation for running a backup. You can easily modify the code if you would like to add more options. If you know REXX at all (or you're willing to learn) the changes required should be obvious. Experiment! (just make sure you have a copy of the original in case you make a mistake!). This program uses IBM's Visual REXX extensions and will not run without them. BMLog.CMD This quick and dirty little program will display the current BackMaster Log file. As written, it assumes the log file name is BACKMAST.LOG, and that the BackMaster directory is in your PATH. It utilizes the OS/2 Enhanced Editor (EPM.EXE), but you can easily modify the program to use the OS/2 System Editor (E.EXE), or any other text display program you'd like. FullBkup.CMD This program will perform an automated full backup of every logical FAT and HPFS drive on your system. Since this may require you to change cartridges, you will be prompted before a new partition is backed up (the default. You may optionally have the program backup all of your partitions without any intervention on your part. Change the "prompt = 'YES'" statement at the beginning of the program to "prompt = 'NO'"). In addition, this program will maintain two copies of your BACKMAST.LOG file (if you have one). Prior to performing it's first backup, it will delete the existing BACKMAST.OLD file (if any) and rename the current BACKMAST.LOG to BACKMAST.OLD. This mechanism should prevent one single BACKMAST.LOG from growing too large. This program will create the backup with a name of: FULL x: mm/dd/yy Where x: is the partition backed up mm/dd/yy is the date on which the backup was performed. This program will use the FileType() external function call to determine the logical drive type. It also requires IBM's Visual REXX extensions and will not run without them. IncrBkup.CMD This program will perform an automated incremental backup of every logical FAT and HPFS drive on your system. Since multiple incremental backups will often fit on a single cartridge, this program will run from beginning to end without intervention on the user. Each incremental backup will be created with a name of: INCR x: mm/dd/yy Where x: is the partition backed up mm/dd/yy is the date on which the backup was performed. The name differs from the Full Backup in order to allow the user to easily differentiate which type of backup is on the tape if the user should scan the tape directory. This program will use the FileType() external function in order to determine the logical drive type. New to this version of the REXX IncrBkup script is that it will actually invoke BackMaster to perform a differential backup. In essence, it will back up all files with their archive bits set, but will not reset them after backing them up. Only when the backup has successfully completed will the REXX program itself reset the archive bits. This is to address a shortcoming in the current shipping version of BackMaster 1.1. BM 1.1 will set the archive bits as the files are being processed. If the backup should in any way fail, any rerun of the backup will not process these files again. I want to make sure the backup completed successfully before resetting these bits. ZapTapes.CMD This program will allow you to erase a number of cartridges prior to performing a full or an incremental backup. If you select this program from the BMMenu.CMD menu, BMMenu will restart and allow you to decide which backup you want to perform (it is assumed you wanted to Quick Erase the tapes prior to running the backup). The program will calculate how much space is actually used on your system, and give a rough estimate of how many tapes you'll need. If you are using tapes that can hold more than 250M of data, edit the program and change the value for the "capacity" variable at the beginning of the code. Usually you'll need more than the default, but you are allowed to override it in any case. This program will use the FileType() external function so as to not include CD-ROM or VDU drives in it's space calculations. It also requires IBM's Visual REXX extensions in order to run. TpFormat.CMD This program was essentially cloned from ZapTapes.CMD (above) so everything documented for ZapTapes.CMD also applies to this program. The difference is that this program will format the tape, not just perform a Quick Erase. Use this program if you are getting errors while backing up (typically Error 52). Formatting a tape will also mark those blocks identified as being "bad" so that BackMaster won't attempt to use them. Be aware that formatting a standard DC2120 cartridge can take up to two hours unless you are using a high-speed tape controller. FileType.CMD I inquired from several places on how I could determine through a REXX program what type of file system is being used by a particular partition. I received lots of useful suggestions until I hit upon what I feel is the best possible one. I have a product installed called "Performance 2.1 Plus" from Clear And Simple, Inc. This is a performance and tuning tool kit written entirely in OS/2 REXX/2. One of the tools, SeeSys.CMD, was correctly identifying each partition on my system. I decided to look at the source to see how it was doing this. What I found was a very simple technique which I've used to write FileType.CMD. Please note that while I duplicated the technique, the code used is entirely different! I did not plagiarize the code! "Performance 2.1 Plus" is a terrific product for two reasons: 1) It provides lots of useful information for tuning an OS/2 2.x system, and 2) It provides some terrific examples of REXX coding for those of you interested in furthering your knowledge of this wonderfully flexible language. Enough of the plug. FileType.CMD is an external function that must be invoked from within other REXX programs in order to perform any useful function. Example: type = FileType(drivespec) Where: drivespec is the logical identifier of the drive you are interested in. It must be an alphabetic character followed by a colon (or a variable representing this information). If the drivespec is incorrectly coded, or represents a drive that does not exist on your system, then "type" will contain the literal "ERROR". If the specified drive is not ready or unmounted, then "type" will contain the literal "NOT READY", otherwise it will contain "FAT," "HPFS" or "CD-ROM" (no quotes). The newest revision will also return "VDU" for a DCF/2 container volume. I hope you find these programs useful. Information on the products and vendors named here are: BackMaster 1.1 MSR Development P.O. Box 632070 Nacogdoches, TX 75963 409-564-1862 - Voice 409-560-5868 - FAX 409-560-5970 - BBS Performance 2.1 Plus Clear & Simple, Inc. P.O. Box 130 W. Simsbury, CT 06092 203-658-1204 - Voice DCF/2 Proportional Software Corporation 1717 Linden Lake Road Fort Collins, CO 80524 303-484-2665 - Voice 303-484-2670 - FAX OS/2 2.x OS/2 Warp 3.0 The IBM Corporation 919-517-0001 - BBS 800-342-6672 - Voice Sales The author may be contacted at: Compuserve: 72267,1372 Internet: 72267.1372@compuserve.com -- or -- jcruz@ibm.net