MRBackup Version 3.4 A Hard Disk Backup Utility for the Commodore Amiga February 1990 Mark R. Rinfret Introduction MRBackup provides a range of services which support backup and restore of files to/from hard disk. This program has been available for over a year and has seen several changes (good and bad) during that time. Version 3 contains major differences and some incompatibilities with version 2. See the Changes file accompanying this update for details. Requirements MRBackup requires the AmigaDOS version 1.3 operating system and an installed ARP library, version 34.1 or higher (arp.library should have been included with MRBackup). In addition, MRBackup runs best with at least 1 megabyte of RAM installed. A hard disk is not necessary (believe it or not!) to use MRBackup. Installation The MRBackup "kit" consists of the following files: MRBackup - the program file MRBackup.info - program icon file MRBackup.TXT - document file MRBackup.init - user preferences file MRBackup.xcld - exclude filter file MRBackup.cflt - compression filter file arp.library - ARP shared library Install - CLI command file installation To perform the default installation, just type EXECUTE Install This will install the program in the SYS:C directory and the support files (minus the document) in the S: directory. The arp.library file will be copied to the LIBS: directory if it does not already exist. MRBackup looks for its support files either in the S: directory or in the directory that is current at the time that MRBackup is executed. Of course, you can edit the Install file to tailor it to meet your requirements. To obtain a hardcopy of the document file, type COPY MRBackup.TXT TO PRT: Operation To use MRBackup, click on the program icon or type MRBackup at the CLI prompt. MRBackup runs in its own screen. During its initialization, MRBackup will read the user preferences file 2 (MRBackup.init) and set various program options (including screen colors) according to the settings in the preferences file. User Interface MRBackup communicates with the user through the use of standard Amiga features, such as windows, gadgets, requesters and menus. It also will communicate with synthesized voice if you enable that option. MRBackup runs in a custom screen (2 bitplanes, 4 colors). The colors of the screen can be adjusted through options in the preferences file (color0 - color3) or via a color palette accessible from the menu. The main window displays various program settings and status information through the use of numerous gadgets. A second window is visible only when using the Utilities command, which can be thought of as a small "program-within-a-program". The main window has been designed such that primarily dynamic (changing) information is displayed in the top half and static information is displayed in the bottom half. If you elect to use a console specification (CON: or NEWCON:) for your logging device, you can drag MRBackup's screen down to reveal the logging window and not miss what's going on in the dynamic area of MRBackup's main window. There is one program menu, named Operations, which invokes MRBackup's "actions" (backup, restore, etc.). Its items will be described in detail later on in this document. Main Window Settings As you view the main window, you should notice several gadgets with boxes containing text or numbers. The gadget titles are placed either on top of or to the right of the gadgets. When changing the contents of the various string gadgets, please be sure to hit the RETURN key to complete the change. MRBackup will not recognize the change until the RETURN key has been pressed. If you make an input error and you forget to press the RETURN key, you may not find out about it until you start a backup or restore operation. Several of these gadgets have arrow gadgets (>>>>) adjacent to them. Clicking on the arrow gadgets invokes a requester which assists in filling in the gadget values (which may also be entered directly into the gadget box). There are also a pair of gadgets near the upper right hand corner of the window labelled STOP and PAUSE. The purpose of each of these gadgets will be described in the following paragraphs. Test Date 3 The test date is used when MRBackup performs a backup. Only files which have been created or changed since the test date will be eligible for backup. You should note that the default value for the test date is "01/01/78 00:00:00" which is the Amiga's "beginning of history". This value makes all files eligible for backup operations. You may enter a new value (using the same format as the default value) by typing directly into the test date string gadget (and pressing RETURN) or you can invoke MRBackup's date requester by clicking on the arrow gadget adjacent to the test date gadget. If you click on the arrow gadget, a requester containing the test date will appear. You may then change the test date through a combination of keyboard and gadget operations. Remember that to clear the gadget, you may press right-Amiga-x. A null date value (all blanks) is allowed, should you want to backup all files in the home path, regardless of their creation dates. The minimum date value handled by this date requester is 01/01/78. The required date and time format is MM/DD/YY HH:MM:SS (24 hour clock), the time specification being optional. You will notice upward and downward pointing "arrows" above each date component. Clicking on the appropriate arrow will increment or decrement the respective portion of the date. Though the values normally will wrap around, not affecting adjacent date components, certain situations will arise where incrementing a day value may cause the month to increment (incrementing February 28 in a non-leap-year will yield March 31). There is also a "NOW" gadget. Though not too meaningful by itself, it provides a convenient way to "click in" dates like "yesterday". To do this, simply click on the "NOW" gadget, then click on the uparrow gadget above the day field of the date. Status The Status gadget provides a brief textual description of the state of MRBackup during backup and restore operations. Error Count The Error Count gadget displays the number of errors that have occurred during a backup or restore. Home Path 4 The Home Path gadget defines the home location for files being backed up or restored. For backup operations, it is the name of the "source" or "from" device or directory. On restore operations, it is the name of the "destination" or "to" device or directory. The "Home Path" may be the name of any disk directory or volume or file-structured logical name. Current File The Current File gadget is updated during backup and restore operations to report the active file. Backup Path The Backup Path gadget defines the "offline" or "archived" location for files being backed up or restored. For backup operations, it is the name of the "destination" or "to" device or directory. On restore operations, it is the name of the "source" or "from" device or directory. Note that its meaning is directly opposite to that of the Home Path gadget. You should also note that the value input to the Backup Path gadget is not verified immediately, as is the Home Path. This allows you to specify a device or directory which is not currently mounted. If you make an erroneous entry, it will be detected and reported by the backup or restore operations. The "Backup Path" must specify the name of a floppy disk device (DF0:, DF1:, etc.) if formatting is enabled (see Formatting in a later paragraph). Otherwise, it may specify any directory, volume or file-structured logical name. Current Backup Volume The Current Backup Volume gadget is updated by backup and restore operations to display the volume name of the backup device or directory. Output Capacity The Output Capacity gadget is similar in concept to a fuel gauge. It graphically displays the amount of space remaining on the output device, which is specified by the Backup Path during backup operations and the Home Path during restore operations. 5 Blocks For those of you with a digital mindset, the Blocks gadget displays the same information as the Output Capacity gadget, but with a digital readout of the number of blocks available on the output device. Listing Path The Listing Path gadget specifies the pathname to be used when writing the detailed listing of a backup operations. It may specify the printer (PRT: default), a file (i.e. MRBackup.list), or some other stream oriented device, such as SER:. The Listing Path is only meaningful when the Listing gadget is set to ON. Listings are currently only generated when the Backup command is used. Each time a backup is started, MRBackup checks for the existence of the listing file. If it exists, you will be prompted with a requester which says Overwrite contents of listing file (NO = append)? A YES response to this requester will cause the previous contents of the listing file to be destroyed. A NO response will cause new listing information to be appended to the end of the listing file. In this manner, you can do separate backups of different areas of your disk while accumulating the summary information in one file. Compression Filter The Compression Filter gadget specifies the name of a file which contains pathname patterns of files which should not be compressed during backup. The default name of this filter is "S:MRBackup.cflt". It has been found that certain files will actually expand when subjected to the Lempel-Ziv compression algorithm employed by MRBackup. Files which fall into this category include archives created by the ARC and Zoo programs. Also, files previously compressed should not be compressed a second time. Other files which exhibit this behavior include several types of graphics files, such as IFF ILBM files and GIF files. These pathname patterns use ARP-style wildcarding. That is, both the asterisk (*) and the number-sign, question-mark combination (#?) can be used to represent multiple-character sequences. The full range of AmigaDOS filename pattern specification can be employed. 6 The compression filter file can be created with any text editor or word processor which will output plain text. Each line of the file should contain only one pattern. Blank lines are ignored. Also, the specifications are case-insensitive. That is, "SYSTEM" and "system" are equivalent. It is important to note that the pathname specifications are assumed to be RELATIVE to the home device. Everything up to and including the colon (:) in the Home Path specification should be omitted from the exclude filter specifications. There are three built-in patterns which need not be included in the compression filter file. They are: *.arc Files created by the ARC archiver *.zoo Files created by the Zoo archiver *.Z Files created by MRBackup compression or the standalone "compress" utility. Other specifications that you might want to include are: *.GIF Graphics Interchange Format files (Compuserve) *.IFF IFF files (assuming you use this convention) Naturally, in order to fully utilize this feature, you will have to adopt some naming conventions for files of this category. Backup Volume Prefix When the Backup Path names a floppy diskette and formatting is enabled, MRBackup must give a name to the newly formatted diskette. The default naming convention creates a string of the form "Backup MM-DD-YY.n" where is the current date and is the sequence number of the diskette being formatted. You can override this convention (somewhat) by typing a value into the Backup Volume Prefix gadget. The diskette sequence number will be appended to the prefix you choose. Note that certain special characters are forbidden (#, ?, `, ', :, "). MRBackup will convert these to a period. Exclude Filter The Exclude Filter gadget names a file which contains lines describing files which should not be backed up. The default pathname for this file is "S:MRBackup.xcld". Any filename matching an entry in this list will be excluded from a backup. The format of the Exclude Filter file is 7 identical to that of the Compress Filter file. Here are some examples: ; Exclude all object files #?.o ; Exclude all files beginning with "System" system* ; Exclude all ".info" files *.info ; Exclude the "include" directory and all subdirectories include ; Exclude any file ending in a period followed by one character #?.? Preferences The Preferences gadget specifies the name of the file containing all of MRBackup's custom settings. When MRBackup is started, it first looks for the file MRBackup.init, in the current directory. If that file isn't found, it looks for S:MRBackup.init. You may change some or all of MRBackup's default settings, using the gadgets describe in this section, then save them to the file specified by the Preferences gadget. Each line in the file is either an option setting, of the form: OPTION = VALUE or a comment. Comment lines begin with a semi-colon (;). A sample initialization file is included on the next page. It illustrates the use of all possible parameter settings. 8 ; This is the MRBackup preferences/initialization file. ; This file is comprised of parameter settings and comment lines. ; Parameter setting lines are of the form: ; = ; where names the parameter to be set and is ; either a boolean (YES/NO) or a string value. ; Leading blanks are discarded and empty lines are ignored. ; Comments may begin with a semi-colon (;). ; Decimal value for screen color 0 color0 = 0 ; Decimal value for screen color 1 color1 = 3020 ; Decimal value for screen color 2 color2 = 4080 ; Decimal value for screen color 3 color3 = 3616 ; Level of Lempel-Ziv file compression. compression = 13-Bit ; Level of Lempel-Zip file decompression. decompression = 13-Bit ; Should MRBackup generate a paginated listing during backup? listing = YES ; Should MRBackup talk to me? speech = YES ; How should floppies be formatted during backup? format = Quick ; Should MRBackup split large files across multiple floppies? bigfiles = YES ; Should MRBackup set archive bits during backup/restore? setarchivebits = NO ; Should MRBackup test archive bits during backup? testarchivebits = NO ; What is the name of the logging file or device? log = NEWCON:0/10/640/190/MRBackup.Log ; What is the name of the home device/volume/directory? home = DH0: ; What is the name of the backup device/volume/directory? backup = DF0: ; What is the name of the listing device or file? list = PRT: ; What is the name of the exclude filter file? exclude = MRBackup.xcld ; What is the name of the compression filter file? cfilter = MRBackup.cflt ; What is the prefix to be used when naming backup diskettes? prefix = MyBackup 9 Log File The Log File gadget contains the name of the file or device (including console) which will receive special informational messages output by MRBackup during the course of its operation. You can disable the log file simply by clearing the Log File gadget and pressing the RETURN key. Any stream-oriented file or device specification is allowed. If you wish to direct the logging output to a window, use a CON: or NEWCON: console specification. Example: NEWCON:0/10/640/190/MRBackup-LOG If you do specify a console, you must be aware that the window will be opened on the WorkBench screen, rather than MRBackup's custom screen. To view the console window, just flip the WorkBench screen to the front with the Left-Amiga N combination. When you are done viewing it, return to the MRBackup screen with Left-Amiga M. Listing The Listing gadget is an ON/OFF gadget (clicking on it will invert its value) which controls whether a listing will be produced when performing a backup. Test Archive Bits Each AmigaDOS file has a special flag, called an archive bit, which can be used to indicate whether the file has been archived by a disk backup program. If the Test Archive Bits gadget is set to ON, only files whose archive bits are not set will be considered for backup (the test date is also applied). This gives you a very accurate method for incremental backup selection if you're careful with your backup diskette library. Also, see the Set Archive Bits gadget description. Set Archive Bits If this gadget is enabled, MRBackup will set the archive bit of any file that it backs up. The archive bit will normally remain set until the file is modified in some way. On subsequent backups, if the file remains unchanged and the Test Archive Bits gadget is enabled, the file will be excluded from that backup. This provides an alternative to the Test Date when doing incremental backups. The setting of the archive bits is deferred until the backup 10 is completed or the current diskette is filled. Thus, should an error occur during the backup, you won't be left with files whose archive bits have been set but in reality do not exist on a good backup disk. Big Files The Big Files gadget is an ON/OFF gadget which toggles its value when clicked. When ON, it enables the archiving of "big" files. Big files are files whose size exceeds the formatted capacity of a standard 3.5" diskette (1756 blocks). In order to backup big files, MRBackup must split them across two or more diskettes. In order to accomplish this, a special information file, MRBackup.bigfile, is written to each backup diskette containing a big file. MRBackup also requires formatting to be enabled in order for a big file backup to be attempted. If these conditions are not met, MRBackup will simply skip over the big file, reporting the event. Voice The Voice gadget is an ON/OFF gadget which enables/disables MRBackup's ability to speak to you, using the Amiga's synthesized voice capabilities. This is especially useful when doing backups. When a new diskette is required, MRBackup will call you. In order to enable the voice option, your system must have the SPEAK: device mounted. SPEAK: was introduced with version 1.3 of AmigaDOS. Compression The Compression gadget determines if file compression is to be performed during backup and, if so, the size of the "codes" used to perform the compression. Clicking on this gadget will cause it to cycle through its range of values from "None" to "16- Bit". See the section titled "Compression/Decompression" for more details on file compression. Decompression The Decompression gadget behaves in much the same manner as the Compression gadget, except that it controls the level of decompression to be performed during restore operations. Thus, you can independently control backup and restore compression. During restore, files which were compressed with a larger code size than that selected by the Decompression gadget will be copied to the home device, rather than being decompressed. Should you wish to decompress these files later, MRBackup will do 11 it for you. Just use the Utilities command in the Operations menu. Formatting The Formatting gadget controls the level of formatting to be applied to a diskette when a backup is done. Clicking on this gadget will cause it to cycle through its range of possible values. They are: None - The diskette is assumed to be preformatted. Files backed up to the diskette will either be added to files already on the diskette. If a file by the same name already exists, it will be overwritten. Normal - The diskette will be completely formatted. Quick - The diskette must have been previously formatted. It may be a brand new diskette or one with old files on it. All information about existing files on the diskette is erased. Since only two tracks need to be rewritten in order to do this, the diskette is initialized very quickly. If you batch-format new disks as you purchase them, this mode is highly recommended, as it will save you a fair amount of time over the "Normal" mode. 12 Error Handling The Error Handling gadget controls the level of error handling that MRBackup will employ during backup and restore operations. Clicking on this gadget will cause it to cycle through its range of values. They are: Interactive - When an error is encountered, MRBackup will report the error, then present you with a requester listing the recovery options that are available. Retry - When an error occurs, MRBackup will attempt the operation again, up to the number of retries specified in the Retries gadget (later). Errors will be counted and displayed in the Error Count gadget. Ignore - MRBackup will attempt to recover from the error by retrying up to the number of retries specified in the Retries gadget. If recovery isn't achieved, MRBackup will skip the current operation and go on to the next. For obvious reasons, this mode of operation is not recommended, though it is provided for the user who sees a need for it. Abort - upon detection of any error, MRBackup will promptly terminate the current operation after reporting the error. Retries The Retries gadget determines the number of times that MRBackup will attempt to recover from a file or disk error before aborting or proceeding to the next file. Compression/Decompression The form of compression employed by MRBackup is Lempel-Ziv, used in popular archiving programs and the compress program on Unix systems. It is reasonably efficient, performing compression "on-the-fly" (requires only 1 pass of a file) and can yield compression factors on the order of 35% - 65% (typical). Compression is achieved by remapping byte sequences in a file to new "codes". Usually, the remapping results in code sequences whose total number of bits is less than the number of bits in the original file data. The codes have a maximum size, specified as a number of bits, which governs the overall 13 performance of the compression. MRBackup supports code sizes in the range of 12-16 bits. The larger code sizes require more processor time to compress a given file and more memory to hold the code tables. Using 12-Bit codes requires an additional 30000 bytes of memory (vs. no compression). 16-Bit codes require an additional 414000 (yes!) bytes. You will not be able to use 16- Bit codes on a minimally equipped Amiga. Depending upon the amount of memory you have available, you may have to terminate some applications and/or close some windows in order to free up enough memory to use 16-Bit codes. If this doesn't work, reduce the code size until you find a value that works on your machine. The Operations Menu MRBackup currently has one Menu, titled the "Operations Menu". Each item in the menu causes some operation to be performed. The Operations Menu items are: Backup This command begins the backup process. You should first be sure that all program settings are correct. Colors The Colors command pops up a color palette requester on your screen. With it, you can change the 4 colors used by MRBackup's screen and windows. Resume Backup This command allows you to backup your hard disk in stages or recover from an interruption, such as a power failure. Prior to "starting" each backup diskette, MRBackup writes information about its current internal state to a file named S:MRBackup.context. The first line of this file is the disk sequence number (1..n). The second line is the name of the first file to be written to the floppy. The third line is the backup "delta date". Subsequent lines are the names of files and directories in MRBackup's top-level file list. As long as the file specified in line 2 can be found, MRBackup should be able to resume your backup, even if changes have occurred since the original backup was interrupted. You may even edit the context file for special situations where you wish to backup a disjoint set of directories. 14 Restore Restore allows you to recover files from backup diskettes previously created with the Backup or Resume Backup commands. MRBackup will prompt you for diskettes as they are needed. Note that there is no rigid order for restoring diskettes. Load Preferences This command reads all MRBackup program settings from the file specified by the Preferences gadget. You would typically use this command to restore MRBackup's settings to your startup settings. Save Preferences This command writes the MRBackup's current settings to the file specified by the Preferences gadget. This allows you to establish MRBackup's default initialization parameters. MRBackup will attempt to make a copy of the current preferences to a file of the same name, but with an extension of ".bak". If the preferences name you have specified does not currently exist, MRBackup will inform you that it could not make a backup. Utilities The Utilities command provides tools for performing certain operations on select groups of files. It provides its own window and support gadgetry. The utilities provided and the means for accessing them are described in a later section of this document. PLEASE READ THE UTILITIES DOCUMENTATION CAREFULLY! Operation of these utilities is not entirely intuitive and there are certain operating characteristics that you must be aware of if you are to use them correctly. Also, these utilities do not attempt to be a replacement for the standard AmigaDos utilities. Rather, they are provided as a convenience for use while running MRBackup. Quit Alas - all good things must come to an end. As much fun as MRBackup is to use, you'll probably want to put it away once in a while :-). 15 Backing Up a Disk The instructions that follow assume you are going to backup your hard disk, or a portion of it, to unformatted diskettes. You may also move files from/to just about any file-structured volume or directory. Just remember to disable disk formatting to relax the Backup Path restrictions. To back up your hard disk, or a section of it, first get an indication of the size of the area with the Info command, "ls" (if you have it), List, etc. To get a rough estimate of the number of diskettes required, divide the total number of bytes (blocks * 512) by 800000. If you have enabled file compression, multiply this result by 0.60. This should give you a very rough estimate (probably high) of the number of diskettes required to back up that area. The diskettes selected for backup need not be preformatted, as MRBackup will format them as needed. If you are using previously formatted diskettes, remember that you can save time if you use the Quick format option. Remember that formatting (Normal or Quick) will destroy any data previously stored on your diskettes. Once your diskettes are ready and stacked neatly within reach (get some labels and your favorite marker pen, too!), the fun begins. First, modify the pathname specifications according to your requirements. Normally, the "Home Path" would be the device name of your hard disk or a directory on it (e.g. DH0:) while the "Backup Path" would specify the device name of one of your floppy drives (e.g. DF0:). While earlier versions of MRBackup were pretty rigid in this regard, this version will allow you to specify ANY disk device name in either specification. PLEASE BE CAREFUL! Many users asked for this increased flexibility. Just be aware that it carries with it an increased risk that you now have more "opportunity" to burn yourself with improper pathname specifications. Finally, the listing path may be set to the printer device (PRT:) or to the name of a file on a hard drive or any available floppy drive not being used by the backup. The listing path will be ignored if you set the Listing gadget to OFF. Make sure that you have set the desired options in the main window, then select Backup from the Operations menu. Once the date has been entered, the rest is fairly automatic. You will be prompted immediately for a diskette. Insert it into the floppy drive that you specified in the backup path and the disk requester will be satisfied. Should you want to abort, simply hit the CANCEL gadget in the 16 requester. Also, you may abort the backup process at any time by hitting the STOP gadget which appears in the top left area of the screen. This gadget is checked prior to each block write operation, so be patient if it does not respond immediately. Use the STOP gadget with caution- it really lives up to its name! You may also use the PAUSE gadget to suspend a backup or restore operation. Once the PAUSE gadget is hit, it must be hit again to resume the current operation. As each diskette is filled, you should promptly label it. If formatting is enabled, MRBackup automatically generates volume names of the form: Backup MM-DD-YY. Also to be noted is the fact that the files on the backup media retain the creation/modification date, comments (FileNotes) and protection bits of their counterparts on the home device. You will find that the Amiga's multitasking environment shines when using this program. For those long-haul backups, get everything started, then shove MRBackup's screen to the back and go start something useful. MRBackup will carry on without your watchful eye. When it needs a disk, the disk requester will pop out in front of everything and MRBackup will ask (out loud, if voice is enabled ) for another disk. Having something else to do will make the time pass faster. Restoring the Backups No, this isn't always the bad part. Backup and restore can also be useful when your hard disk is crowded and you have to "juggle" data around. The restoration process is quite similar, mechanically, to the backup process - it's just reversed. In addition, the meanings of the pathname specifications are altered somewhat. The "Home path" describes the destination for the restored files and, as with the backup process, may specify any valid directory or file-structured device pathname. The "Backup Path" describes the file or files to be restored and thus may be defined down to the file level (1 file). Note that on a restore operation, the file creation date of the backup file is compared to its matching file (if it exists) on the home device. If the file on the home device has the same date or is newer, the file will not be replaced. If you wish to restore the older copy, it must be deleted first. 17 Utilities Operation The MRBackup Utilities window is activated by selecting "Utilities" from the Operations menu. The utilities provide a range of services which augment the power of MRBackup and lend convenience to its use. PLEASE READ THIS SECTION CAREFULLY! The proper operation of these utilities may run counter to what you expect and some of the features/capabilities are quite subtle. The first point to be noted is that these utilities are designed primarily to perform operations across directory or device boundaries, though the Compress and Decompress operations may be performed in a single directory and the Delete operation always works on a single directory. At the heart of the utilities' operation is a highly interactive file requester which supports the concept of "extended selection" (quite common on you-know-who's computer). With extended selection, you can select a subset of files listed for a given directory by holding down the SHIFT key during the selection process. This group of files may then be "fed" to the desired operation. I will discuss this in more detail later on. Now, let's get acquainted with the layout of the MRBackup Utilities window. If MRBackup isn't already running on your Amiga, fire it up and select the Utilities command from the Operations menu. Refer to the screen while reading this document to maintain your orientation. Note that when the Utilities are selected, a new window appears. Also note the "close box" (rectangle with the dot in the middle) on the title bar of the MRBackup Utilities window. The utilities are exited by clicking in the close box. Though it is possible to flip back and forth between the Utilities window and the main window (for parameter viewing purposes), you should confine your actions to the Utilities window until you are through with the services that it provides. Mouse-clicks and menu operations in the main window are ignored while the Utilities window is open. Now let's get oriented. The top-leftmost gadget is labeled "DRIVE". This gadget allows you to cycle through the currently mounted disk volumes (logical and physical drives). This gadget is only active when either the "From" or "To" switch (later) has been set to "ON". To the right of the DRIVE gadget is a string gadget labeled "FileSpec". This gadget allows you to limit your file searches ("From" directory only) to only those files matching a given pattern. Normally, this pattern, if specified, will include the wildcard characters "*", "#?" and "?". For instance (and we're jumping ahead of ourselves a little), if you want to decompress a group of files, it is highly recommended that you first enter the string "*.Z" into the FileSpec gadget. 18 This limits visibility to only those files which end in ".Z" (the only files which can be decompressed). If you wanted to delete all object files, you would probably enter "*.o" into the FileSpec gadget. Get the picture? For those who are totally unfamiliar with wildcard (meta) characters, an asterisk (*) or number sign and question mark (#?) are used to represent any number of characters, while a question mark (?) represents exactly one character. Got the drift? Good. Below the FileSpec gadget are two triplets of gadgets, labeled "From" and "To". The "From" gadget is a device or directory pathname specification for a group of files to be operated on. The "To" gadget specifies the device or directory which is the destination for these files (when it is appropriate to have a destination - DELETE has no destination). The ON/OFF switches to the left of the From and To gadgets determine which path's files are currently displayed in the file display box at the bottom of the window. To the left of the "From" and "To" pathname gadgets are a couple of upward pointing arrows. These gadgets attempt to obtain the parent directory or device for the pathname currently displayed. For example, if the "From" gadget is currently displaying the pathname DH0:Devs/Printers clicking on the arrow gadget will cause DH0:Devs to be displayed, the file display box (big box at the bottom) will be cleared and a new file scan will be started. You should also note that the switch gadget related to that gadget need not be open for this behavior to occur. The next string gadget (down) is labeled "Info". The "Info" gadget is used to display general information about the status of the Utilities, including the name of the current file being processed and error reports. Now we get to the good part. You should see a big box with a border in the center of the screen. Immediately to its right is a slider gadget. To the right of the slider are two boxes labeled "All Files" and "Clear". These all make up the file requester that control the Utilities operation. You've probably used similar file requesters before. Though I wrote original code for this, I tip my hat to Charlie Heath (MicroSmiths) and Peter da Silva for their pioneering in this area. I borrowed heavily from their prior works. In discussing the operation of the file requester, I will be referring back to the previously described gadgets. In order to do something here, you first have to select one 19 or more files to "do it to". This group of files is described by the "From" list. You can start a scan for this list by entering the desired starting path in the From pathname gadget and hitting the RETURN key or by clicking on the associated switch gadget. If you have done this correctly, you should immediately note a bustle of activity as the disk is searched and the screen is updated. You should observe filenames appearing in the requester display box and the slider bar should start to shrink. Depending on the starting path you entered into the "From" gadget, you might notice that some of the filenames are displayed in the same color as the title bar, while others are displayed in the color used by the requester and gadget borders. Those displayed in the menu bar's color are simple filenames, while the others are the names of directories. If you want a good illustration of this, select FONTS: or DEVS: as the starting path. You should also note that the filenames appear in unsorted order. They will remain unsorted until you click on the slider. Now let's discuss the interactive and interruptible nature of the file requester. The normal human tendency is to start a scan, then sit back until some indication is given that the scan is complete, then start mucking with the list of files. Don't be so polite! You can do just about anything, including clicking on those big boxes to the right (command buttons) that I haven't described yet. To select a file, position the mouse pointer over its name in the display box and click once. You should notice that the filename is now displayed in reverse video. This means that the file is selected. If you click the same file again (after a short pause), the file will revert to normal video (the unselected state - sort of like Rhode Island :-). If you wish to select multiple files, depress the SHIFT key (either one) prior to clicking the mouse. Otherwise, the previously selected file(s) will be deselected. If you wish to select ALL files, wait until the scan is complete, then click in the little box to the right of the "All Files" gadget. To clear all file selections, click in the little box to the right of the "Clear" gadget. You will notice that only 12 filenames can appear in the display box at any time. By using the slider, you can view/select other files in the list. You do this by "dragging" the slider bar - click the mouse on it and, while holding the mouse button down, drag the mouse pointer downward. As you drag it, other filenames should be revealed (depending upon how many files exist in the currently selected directory). The size of the slider bar is proportional to the number of files in the directory. If half of the files are visible, the bar will be one-half the size of the slider box. Also, note that if a scan is in progress, the file list will be resorted (case-insensitive) each time you click on the slider. To descend to deeper levels in the directory structure, you 20 can either type a new name in the From gadget (the hard way) or you can double-click (two mouse clicks in rapid succession) any of the red (directory name) entries visible in the display box. A new scan will immediately be started even if the current scan is not complete. To go back up the directory tree, click the up- arrow gadget described earlier. Again, the current scan (if active) will be abandoned and a new one started at the next higher level. The preceding discussion has focused on the behavior of the file requester when the "From" list is active. Though its behavior for the "To" list is similar, there are some strong differences. First of all, the object of a "To" scan is to select a target DIRECTORY (not a file). Although both file names and directory names appear in the display list when doing a "To" scan, only directory names can be selected. Also, extended selection (via SHIFT key or the "All Files" gadget) is meaningless here and so it is not supported. You just use the "To" scan to locate a target directory. Once found, double-clicking on the directory name will cause it to be added to the "To" pathname. The interruptible nature of the file requester is also supported for this mode. Before getting to the processing options (soon, I promise!), there is one other file requester behavior to note. If you start a scan for one list, then start a scan for the other list before the first one is complete, the partial results of the first scan will be abandoned. If the scan is allowed to complete, you may then activate the other list, do some navigating, then reactivate the other list. It will be redisplayed immediately without a re- scan. This may not be what you want, especially if both "From" and "To" lists are on diskettes which have been swapped in or out. To force a rescan, just position the mouse pointer into the appropriate "From" or "To" pathname gadget and press the RETURN key. OK, let's get back to those labeled buttons at the bottom of the window. Those are the "command buttons" which tell MRBackup to start performing specific processing on the files you have selected. For all operations, the name of the file being processed is displayed in the "Info" gadget. If an error occurs that MRBackup considers "tolerable", you will be prompted with a requester that will give you the choice of continuing or aborting. As each file is processed, its name is removed from the list and the display box is refreshed. When processing is complete, one of two things will happen. If there were errors, the display box will be left displaying the names of the files that were not processed. If all went well, a new scan will be started for the "From" list. 21 You may interrupt a command button's processing at any time by clicking on it again. This will cause a requester to pop up, asking if you wish to abort the operation. A "Yes" response will terminate the current command, while a "No" response will allow processing to continue. Please note that no support currently exists for processing a complete hierarchy of subdirectories. Though you are allowed to select directory entries, the utilities won't automatically descend to the next level and process files there. You will have to "manually" descend to the next lower level by double-clicking on the directory entry. The description of the command buttons and their processing follows: Compress The selected files will be compressed, using the same Lempel-Ziv method used by the Backup command. The number of bits used is determined by the Compression gadget setting in the main window. Unlike the Backup command, however, files that don't compress properly are not copied instead. The file date and comment are maintained. The destination file will have the suffix ".Z" appended to its name. Also - and this is important! - if the "From" and "To" specifications are identical, the original file will be deleted if the compression is successful. This is standard Unix compress behavior which seems quite appropriate to me. Decompress The selected files will be decompressed. The maximum compression code size allowed is determined by the Decompression gadget setting in the main window. Note that only files whose names end in ".Z" will be processed, regardless of what may be in your selection list. It is a good idea to type ".Z" into the FileSpec gadget to limit visibility only to compressed files. This will prevent confusion. The file date and comment are maintained. Again, as with compress, if the "From" and "To" specifications are the same, the original file will be deleted after a successful decompression. Copy The selected files will be copied to the "To" directory, which MUST BE DIFFERENT than the "From" directory. File dates and comments are maintained. 22 Rename The selected files are renamed (moved) to a new directory. The "From" and "To" directories MUST BE DIFFERENT. Also note that you cannot rename across device boundaries. If you wish to do this, use a combination of the Copy and Delete operations. Delete The selected files are deleted. Period. Please be careful with this as there is currently no "last chance" prompt prior to the operation. SetArcBit The AmigaDOS "archive bit" will be set for all selected files. This could be used to inhibit the backup of certain files when the "Use Archive Bits" flag is set. ClrArcBit The AmigaDOS "archive bit" will be cleared for all selected files. This would assure that certain files would be backed up when the "Use Archive Bits" flag is set. Another use for this operation is to "unmark" files that were marked as archived during a failed backup operation. This would be done before the "Resume Backup" command is used. There's room for lots more stuff here, but the usual lack of time keeps me from getting them in this release. I would like to add a MakeDir command and possibly add an "Execute" command button which would fire a command off to a CLI. Also nice would be some running statistics (file count, bytes in/out, etc.) during file processing. Support for nested directories is next on the agenda. Please give me your feedback on your impressions and any suggestions you might have. Using RAD: for Speedy Backups John Hopf of Newport, RI, called me to report a "bug" with MRBackup when he used RAD: as his backup destination. Huh? It seems that John discovered that MRBackup is blazingly (well, quite) fast when RAD: is used as the output device. John's approach is to backup to RAD:, then DiskCopy from RAD: to a floppy diskette. Though the process sounds klunky, the overall reduction in time is remarkable (about a factor of 6). 23 The only thing keeping John from employing this technique fully was the failure of MRBackup to properly format RAD:. Well, that's no longer a problem. If you wish to employ this technique, add an entry to your DEVS:MountList file which creates a RAD: drive with a structure identical to a 3.5" floppy disk. Be sure to Mount the drive when you boot your system. Start MRBackup with "Run MRBackup", leaving the CLI free for the DiskCopy command. Now, proceed to do your backups. MRBackup will prompt for a new disk each time RAD: is full. At this point, push MRBackup's screen to the back, pop a floppy disk into a drive and diskcopy from rad: to When the copy completes, pop MRBackup's screen to the front and click the OK gadget on the requester, allowing MRBackup to proceed. Thanks for an excellent idea, John! 24 Warranties and Support There are no warranties, either expressed or implied, with regard to the use of this program. Use it at your own risk. I have tested MRBackup thoroughly, but not exhaustively. A bug or two is bound to be lurking around, though none that would shut you down completely. As for support, I will do my best to respond to bug reports for as long as I have an Amiga in working condition (I hope that's a l-o-n-g time). If you have a situation which has worsened as a result of using MRBackup, I will work with you immediately to rectify the problem. I will only support the most recent version, so please know your version number if you call. MRBackup is a "laid back shareware" program. I would like some compensation for my efforts, especially for the effort that went into version 3.0. A donation of $10.00 would be greatly appreciated. However, I welcome feedback from all MRBackup users, so don't be reluctant to call or write if you're a non- contributing user. Matter of fact, you can consider the long distance phone call (Rhode Island is long distance to everywhere - even Rhode Island :-( ) to be a contribution! 25 MRBackup Roll of Honor The following users have sent shareware contributions exceeding the requested $2.00 for a copy of MRBackup. I would like to publicly thank them by including their names in this "MRBackup Roll of Honor". If I have forgotten to add your name to the list, please let me know. Robert Andersen Vancouver, British Columbia Toby Cabot, Warwick, RI Henrik Clausen, Denmark Paul Coene, Rochester, NY Fran Combar, Bridgewater, NY James De Marco, N. Chelmsford, MA Allan Duncan, Australia Andrew Drummond, Cayman Islands, British West Indies Clive Ellis, Escondido, CA Raymond Erming Malmo, Sweden Don Estok, USCG, Kodiak, AK Robert Farrel, Tivoli, NY Glen Feely, Kinosha, WI Frank Frickey, Bad Homburg, West Germany Otto Gruber, Wappingers Falls, NY Volker Herrmann, Giessen, West Germany Ray Hulinsky, Lincoln, NE Alan Kelm, Ottawa, Ontario Tony Koehn, Hutchinson, KS Ken Lazzaro, El Cajon, CA Henry Marszal, Vermilion, OH Patrick Palmer, Chicago, IL Justin Parker, Santa Fe, NM Grant Robertson, Los Angeles, CA John Sauter, Merrimack, NH Sean Schur, Los Angeles, CA David Spitler, Louisville, KY W.H. Stanton, St. Albans, England Lorrie Shattuck, Walled Lake, MI Alexander Smith, Ottawa, Ontario Milt Very, Oakdale, CA Ralph Watson, Chesterfield, SC Tom Zartler, West Chester, PA Roll of honor members will receive special notice (unsolicited/free updates, in some cases) of new MRBackup releases and other PD stuff that I may find the time to write. 26 Permissions You are permitted to use MRBackup and redistribute it freely. No charge (other than reasonable duplication fees - $5.00 or less) may be made for MRBackup. If you wish to contact me, I can be reached at the following addresses: Usenet: mrr@amanpt1.Newport.RI.US (always) Compu$erve: 72017, 136 (infrequently) BIX: markr (regularly, I hope) or Mark R. Rinfret 348 Indian Avenue Portsmouth, RI 02871 401-846-7639 (home) (1900-2200 weekdays, 0700-2200 weekends) 401-849-8900 (work) (0700-1730) 27 Index "All Files" gadget . . . . . . . . . . . . . . . . . . . 19, 20 "Clear" gadget . . . . . . . . . . . . . . . . . . . . . . . 20 "Current File" gadget . . . . . . . . . . . . . . . . . . 19, 21 "From" gadget . . . . . . . . . . . . . . . . . . . . . . . . 19 "NOW" gadget . . . . . . . . . . . . . . . . . . . . . . . . . 4 "To" gadget . . . . . . . . . . . . . . . . . . . . . . . . . 19 Abort error handling . . . . . . . . . . . . . . . . . . . . . 13 Archive bit . . . . . . . . . . . . . . . . . . . . . . . . . 23 Archive Bits . . . . . . . . . . . . . . . . . . . . . . . . 10 Arp.library . . . . . . . . . . . . . . . . . . . . . . . . . . 2 ARP-style wildcarding . . . . . . . . . . . . . . . . . . . . . 6 Arrow gadget . . . . . . . . . . . . . . . . . . . . . . . . 19 Backing Up a Disk . . . . . . . . . . . . . . . . . . . . . . 16 Backup . . . . . . . . . . . . . . . . . . . . . . . . . 14, 15 Operations Menu . . . . . . . . . . . . . . . . . . . . 14 Backup Path . . . . . . . . . . . . . . . . . . . . . . . 16, 17 Backup Path gadget . . . . . . . . . . . . . . . . . . . . . . 5 Backup Volume Prefix . . . . . . . . . . . . . . . . . . . . . 7 Beginning of history . . . . . . . . . . . . . . . . . . . . . 4 Big files . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Big Files gadget . . . . . . . . . . . . . . . . . . . . . . 11 Blocks gadget . . . . . . . . . . . . . . . . . . . . . . . . . 6 Charlie Heath . . . . . . . . . . . . . . . . . . . . . . . . 19 ClrArcBit Utilities . . . . . . . . . . . . . . . . . . . . . . . 23 Code sizes compression . . . . . . . . . . . . . . . . . . . . . . 14 Codes, compression . . . . . . . . . . . . . . . . . . . . . 13 Colors Operations Menu . . . . . . . . . . . . . . . . . . . . 14 Command buttons . . . . . . . . . . . . . . . . . . . 20, 21, 22 Comment lines . . . . . . . . . . . . . . . . . . . . . . . . . 8 Comments . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Compress . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Utilities . . . . . . . . . . . . . . . . . . . . . . . 22 Compression Filter . . . . . . . . . . . . . . . . . . . . . . 6 Compression filter file format of . . . . . . . . . . . . . . . . . . . . . . . . 7 Compression gadget . . . . . . . . . . . . . . . . . . . 11, 22 Compression/Decompression description . . . . . . . . . . . . . . . . . . . . . . 13 Copy Utilities . . . . . . . . . . . . . . . . . . . . . . . 22 Creation/modification date . . . . . . . . . . . . . . . . . 17 Current Backup Volume . . . . . . . . . . . . . . . . . . . . . 5 Current File gadget . . . . . . . . . . . . . . . . . . . . . . 5 Date and time format . . . . . . . . . . . . . . . . . . . . . 4 Decompress . . . . . . . . . . . . . . . . . . . . . . . . . 18 Utilities . . . . . . . . . . . . . . . . . . . . . . . 22 28 Decompression gadget . . . . . . . . . . . . . . . . . . 11, 22 Delete Utilities . . . . . . . . . . . . . . . . . . . . . . . 23 Disk sequence number . . . . . . . . . . . . . . . . . . . . 14 Document file . . . . . . . . . . . . . . . . . . . . . . . . . 2 Error Count . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Error Count gadget . . . . . . . . . . . . . . . . . . . . . 13 Error Handling gadget . . . . . . . . . . . . . . . . . . . . 13 Exclude Filter file format of . . . . . . . . . . . . . . . . . . . . . . . . 7 Exclude Filter gadget . . . . . . . . . . . . . . . . . . . . . 7 Extended selection . . . . . . . . . . . . . . . . . . . . . 18 Utilities . . . . . . . . . . . . . . . . . . . . . . . 21 File creation date . . . . . . . . . . . . . . . . . . . . . 17 File display box . . . . . . . . . . . . . . . . . . . . . . 19 File requester . . . . . . . . . . . . . . . . . . . . . . . 19 FileSpec . . . . . . . . . . . . . . . . . . . . . . . . . . 18 FileSpec gadget . . . . . . . . . . . . . . . . . . . . . . . 18 Formatting gadget . . . . . . . . . . . . . . . . . . . . . . 12 From gadget . . . . . . . . . . . . . . . . . . . . . . . . . 19 Home Path . . . . . . . . . . . . . . . . . . . . . . . . 16, 17 Home Path gadget . . . . . . . . . . . . . . . . . . . . . . . 5 Ignore error handling . . . . . . . . . . . . . . . . . . . . . 13 Incremental backup . . . . . . . . . . . . . . . . . . . . . 10 Initialization parameters . . . . . . . . . . . . . . . . . . 15 Install . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Installation . . . . . . . . . . . . . . . . . . . . . . . . . 2 Interactive error handling . . . . . . . . . . . . . . . . . . . . . 13 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2 Lempel-Ziv . . . . . . . . . . . . . . . . . . . . . . . 13, 22 Lempel-Ziv compression . . . . . . . . . . . . . . . . . . . . 6 Listing gadget . . . . . . . . . . . . . . . . . . . . . 10, 16 Listing Path . . . . . . . . . . . . . . . . . . . . . . . 6, 16 Listing Path gadget . . . . . . . . . . . . . . . . . . . . . . 6 Load Preferences . . . . . . . . . . . . . . . . . . . . . . 15 Operations Menu . . . . . . . . . . . . . . . . . . . . 15 Main Window Settings . . . . . . . . . . . . . . . . . . . . . 3 Menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 MRBackup Roll of Honor . . . . . . . . . . . . . . . . . . . 26 MRBackup Utilities . . . . . . . . . . . . . . . . . . . . . 18 MRBackup.bigfile . . . . . . . . . . . . . . . . . . . . . . 11 MRBackup.context . . . . . . . . . . . . . . . . . . . . . . 14 MRBackup.init . . . . . . . . . . . . . . . . . . . . . . . . 15 MRBackup.xcld . . . . . . . . . . . . . . . . . . . . . . . . . 7 ON/OFF switches . . . . . . . . . . . . . . . . . . . . . . . 19 Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Operations Menu . . . . . . . . . . . . . . . . . . . . . . . 14 Output Capacity gadget . . . . . . . . . . . . . . . . . . . . 5 Parent directory . . . . . . . . . . . . . . . . . . . . . . 19 Pathname specifications . . . . . . . . . . . . . . . . . . . 16 29 PAUSE gadget . . . . . . . . . . . . . . . . . . . . . . . . 17 Permissions . . . . . . . . . . . . . . . . . . . . . . . . . 27 Peter da Silva . . . . . . . . . . . . . . . . . . . . . . . 19 Preferences . . . . . . . . . . . . . . . . . . . . . . . . . 15 Preferences gadget . . . . . . . . . . . . . . . . . . . . . 15 Protection bits . . . . . . . . . . . . . . . . . . . . . . . 17 Quick format option . . . . . . . . . . . . . . . . . . . . . 16 Quit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Rename Utilities . . . . . . . . . . . . . . . . . . . . . . . 23 Restore . . . . . . . . . . . . . . . . . . . . . . . 11, 15, 17 Operations Menu . . . . . . . . . . . . . . . . . . . . 15 Restoring the Backups . . . . . . . . . . . . . . . . . . . . 17 Resume Backup . . . . . . . . . . . . . . . . . . . . 14, 15, 23 Operations Menu . . . . . . . . . . . . . . . . . . . . 14 Retries gadget . . . . . . . . . . . . . . . . . . . . . . . 13 error handling . . . . . . . . . . . . . . . . . . . . . 13 Retry error handling . . . . . . . . . . . . . . . . . . . . . 13 Save Preferences . . . . . . . . . . . . . . . . . . . . . . 15 Operations Menu . . . . . . . . . . . . . . . . . . . . 15 Select multiple files . . . . . . . . . . . . . . . . . . . . 20 Set Archive Bits . . . . . . . . . . . . . . . . . . . . . . 10 SetArcBit Utilities . . . . . . . . . . . . . . . . . . . . . . . 23 Settings . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Slider . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Slider bar Utilities . . . . . . . . . . . . . . . . . . . . . . . 20 Speak . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 SPEAK: device . . . . . . . . . . . . . . . . . . . . . . . . 11 Status gadget . . . . . . . . . . . . . . . . . . . . . . . . . 4 STOP gadget . . . . . . . . . . . . . . . . . . . . . . . . . 17 Support files . . . . . . . . . . . . . . . . . . . . . . . . . 2 Switch gadget Utilities . . . . . . . . . . . . . . . . . . . . . . . 20 Test Archive Bits . . . . . . . . . . . . . . . . . . . . . . 10 Test Date . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 To gadget . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Up-arrow gadget . . . . . . . . . . . . . . . . . . . . . . . 21 User Interface . . . . . . . . . . . . . . . . . . . . . . . . 3 Using RAD: for Speedy Backups . . . . . . . . . . . . . . . . 23 Utilities . . . . . . . . . . . . . . . . . . . . . . . . 15, 18 Operations Menu . . . . . . . . . . . . . . . . . . . . 15 Utilities Operation . . . . . . . . . . . . . . . . . . . . . 18 Voice gadget . . . . . . . . . . . . . . . . . . . . . . . . 11 Volume names . . . . . . . . . . . . . . . . . . . . . . . . 17 Warranties and Support . . . . . . . . . . . . . . . . . . . 25 Yesterday . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 30