********************************************************************* FBackNG V0.9.2 By Chris De Maeyer For AmigaDOS 68k ********************************************************************* !!!!!!!!!!!!!!!!!! BETA-BETA-BETA-BETA-BETA-BETA !!!!!!!!!!!!!!!!!!!! !! NOT ALL FUNTIONS AND OPTIONS ARE IMPLEMENTED, AVAILABLE OPTIONS !! !! ARE MARKED WITH *ACTIVE*, CLI PARSING IS FULLY IMPLEMENTED..... !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 0. Contents ---------- 1. Introduction 1.1. Legal 1.2. Shareware 1.3. What it does... 1.4. Requirements 1.5. Contact address 1.6. Development info 1.7. Versions 2. Using it 2.1. Command line options 2.2. Examples 3. Appendix 3.1. Common problems 3.2. Error messages 3.3. The future 1. Introduction -------------- If you have used this program before try to make the effort to read this doc again. Some useful info is updated, not listed in previous versions. The program is a complete rewrite of a program formerly known as FBack/FMirror. 1.1. Legal ------- Type : - SHAREWARE. Terms : - no modifications to any file in this distribution archive. - add no additional files to the distribution archive. - use this program longer than 30 days, then you should reward the author with a shareware fee. - after registering you will receive your personal keyfile, this keyfile will enable all options. The keyfile is valid for all remaining versions which are named 'FBackNG'. - author can not be held responsible for data loss, the program has been tested and the behaviour has been described below. - any commercial distribution is prohibited. - the unregistered version may be freely distributed on cover disks and compact discs. - the keyfile is personal and coded with the registered user's name and may not be distributed in any way. - by registering the user accepts all above mentioned rights and obligations. 1.2. Shareware ----------- The unregistered version has following restrictions: - shareware banner pauses - recursive option disabled. Rate: USD 15 for delivery by email USD 20 for delivery by mail (Europe - EEG) USD 25 for delivery by mail (rest of world). Payment with cash in USD (no coins), or EUR according to exchange rates. Or via Eurocheque in USD/EUR. Fill out the registration form and mail with necessary funding. Make sure you specify all information. 1.3. What it does -------------- 'FBackNG' is a daily backup tool. It will check files and copy them to your backup location if they changed. Additionally it runs a scan between the original location and the backup, and updates the backup creating a mirror this way. Working in this fashion will get you up and running again after HD problems/replacement. See example section for common usages. The program includes a batch mode, paths and options are then specified with a configuration file. Several location entries are allowed. Changes (in relation to FBack/FMirror V1.8): - complete rewrite of directory/file parser to support any partition size with any number of files. - added features to enhance portability (standard ANSI functions and UNIX command line parsing). - the program now comprises the two functionalities of the fback/fmirror suite, one program serves all. The program will now run in phases. First a backup phase will run which saves all changed files, then if you specify it, a mirror phase is executed. It will synchronise the backup with the original. You can also specify to skip backup phase and only run a mirror phase. - extra care has been taken to make it idiot proof, extensive reporting and distinct error detection to make troubleshooting easier. 1.4. Requirements -------------- Properly installed Amiga (haven't we all!). To use compression you will need the XPK library and tools. 1.5. Contact address ----------------- For mail/information/problems/registrations/bugs write to the address below, state version & add postage for reply: Visionary Software tav. Chris De Maeyer Norbertijnenstraat 4 B-2040 BELGIUM EUROPE - WORLD - UNIVERS Internet :ceppe@pandora.be http://users.pandora.be/ceppe (latest updates will be here first!) 1.6. Development info ------------------ Sources were written in C and compiled using SAS/C V6.58. Part of file I/O has been coded using standard system library functions. Where possible ANSI functions were used. This surely makes it a bit slower. This version was developed with portability in mind. The old program had a GUI part, which has been removed completely in this one. This also for portability. 1.7. Versions ---------- The actual version can be determined by typing 'version fbackng' in a CLI window. It is recommended to always upgrade to the latest version. V0.9.0 BETA RELEASE - command parser introduced. - file/directory parser introduced. - copy routine introduced, but see below... - some debug code enabled. - limited version which takes no action other than parsing the command line and then scanning the filesystems. V0.9.1 BETA RELEASE - file functions (set flags, clone comment/date, etc). - every file is checked on destination before copy is done, and action is taken. - file/directory parser changed to host both backup and mirror phases. - increased file/directory parser temp. allocation. - stack 64kb and compiled with STACKEXTEND. - simulate switch implemented. - skip backup phase switch implemented. - nonotes switch implemented. - touch switch implemented. - logfile option implemented. - compress option implemented. - backup phase is implemented. - cleaned up all reported compiler optimizations. V0.9.2 BETA RELEASE - file/parser handler changed to handle full paths. - enabled security. 2. Using it ---------- 2.1. Command line options ---------------------- The program uses standard UNIX command templates, so typing 'FBackNG -h' will list all the options available. Unix options are of the form: - for flags - for parameters -... for flags fe. -e -b thevalue -tmr Options are free form, meaning they can be typed in without taking in account the sequence in which they appear. Options are CASE SENSITIVE. See example section [2.2]. Command template ================ FBackNG [-b ] [-o ] [-h] [-s] [-r] [-v <0|1|2|3>] [-i ] [-c ] [-e] [-t] [-n] [-f ] [-a ] [-l ] [-a ] [-A ] [-y ] [-Y ] [-m][-k] Detail explanation of options ============================= h - display HELP. (*ACTIVE*) b - the full path of the SOURCE directory (what to backup). fe. sys: work:data (*ACTIVE*) o - the full path of the DESTINATION directory (where to backup). fe. dh1:mirror/sys backup: (*ACTIVE*) s - Adding this flags will merely report action it would take if this flag was not active. Call it a SIMULATE mode. (*ACTIVE*) r - include subdirectories RECURSIVE. (*ACTIVE*) v <0|1|2|3> - specify the output sent to the user, level of VERBOSITY. 0 = no output 1 = normal output (default) 2 = detail output 3 = debug output Note on performance: the more you send to the console, the slower the program will work. To get optimal speed specify option 0, or let the output write to file using the -l option. (*ACTIVE*) i - set PRIORITY (-100 to 5), in the old days you could use a task manager to do this, now you can simply add it as an option either to speed-up or let it creep in the background. Q: Why I've put in a min. and max. ? A: To avoid problems. As a Amiga guy you should know that setting priorities wrong can give strange results. Fe. program keeps running and doesn't react to input anymore. Eg. console.device runs at priority 5 etc. c - enables COMPRESSION mode, supply preferred packer. In this mode make sure your recovery disk includes the XPK library + some XPK unpacker (fe. xpk [included]) to restore files. fe. -c nuke (*ACTIVE*) e - specifying this option will ignore the archive bit, thus copying EVERY file (= full backup). (*ACTIVE*) t - updates date/time on destination, TOUCH it with current system date/time. If not specified the program will clone date/time from source. Remark: time set is not localized. (*ACTIVE*) n - specifying this option will instruct NOT to copy the filenotes. By default comments are copied. (*ACTIVE*) f - run in batch mode, this parameter contains the FILENAME of the configuration file to process. Syntax configuration file (text file): ----------------- cut ---------------------- [FBackNG] NumberOfPaths = [Paths] OrgPath1 = BckPath1 = Options1 = ... OrgPathN = BckPathN = OptionsN = ----------------- cut ---------------------- Example: study "MYBACK.CFG" included in the archive. g - only process files which match the PATTERN. (*ACTIVE*) l - write generated output to a LOG file. The log contains output of level DETAIL. (*ACTIVE*) y - only backup files BEFORE given date (incl.date) Y - " " " " " " (not incl.date) DATES ARE IN ADOS FORMAT = DD-MMM-YYYY eg. 23-jun-1998 a - only backup files AFTER given date (incl. date). A - " " " " " " (not incl.date) m - after backup run a MIRROR phase. k - do not run a BACKUP phase, obviously specifying this option without the m option is invalid. (*ACTIVE*) 2.2. Examples ---------- This section lists some examples of usage. If you have scenarios of your own then send them in, to help others I'll include them here. - Backup changed prefs files: ; Startup-sequence ... fbackng -m -v 0 -r -b sys:prefs/env-archive -o work:backup/prefs ... - Backup and mirror a disk at startup & add to logfile: ; Startup-sequence ... fbackng -rm -b sys: -o mirror:boot -l T:FBack.log ... - Backup and mirror files before shutdown: .key FLAG .bra { .ket } ; Shutdown script echo "Just a moment, valuable files are checked..." ; if {FLAG} EQ "GFX" fbackng -r -b work:data/gfx -o backup:data/gfx -v 0 echo "Gfx data has been saved." endif if {FLAG} EQ "ALL" fbackng -r -m -b work:data -o mirror:data -v 0 echo "All data has been mirrored." endif ; fbackng -rm -b sys:prefs -o mirror:prefs -c blzw -v 0 echo "System preferences have been saved." ; if exists C:Halt echo "It now safe to switch me OFF !" Halt endif - Backup certain files in a range of dates: fbackng -r -b data:texts -o backup: -t -a 01-feb-1999 -y 10-feb-2000 Will backup the files from 01 february 1999 till 09 february 2000. 3. Appendix ---------- 3.1. Common problems ----------------- Q: When I backup to a JAZ/ZIP drive it takes a long time ! A: Add a large number of disk buffers, eg. 'AddBuffers JAZ5: 2000'. This is not caused by FBack, but due to the way JAZ/ZIP works. Q: I'm a bit confused by the options, how do I only mirror ? A: Specify as options -km, then the backup phase is skipped, and a mirror phase is triggered. 3.2. Error messages (Hmmm, your finger slipped ? Or something more serious...) -------------------------------------------------------------------------- ARGUMENT/COMMAND LINE ERRORS ============================ fbackng: fatal: invalid argument-- %c You substituted and invalid commandline option. Review your commandline. fbackng: fatal: argument required for %c You typed a commandline option which requires a value. Review your commandline and substitute a value for the option. fbackng: fatal: source or destination path required When batch mode is not active it is necessary to define the options -b,-o to set the original path and backup path. Review the commandline and issue: -b source -o destination in the commandline. PROCESSING ERRORS ================= fbackng: fatal: backup process error (n) FBackNG encountered an error while searching and processing the filesystem and this in the backup phase. fbackng: fatal: mirror process error (n) FBackNG encountered an error while searching and processing the filesystem this during the mirror phase. Overview of error return codes relating to processing: Error Description ------------------------------------------------------------- 1 Could not lock directory, a directory could not be locked for examining. Try to reboot your system or closing all applications, then try again. 2 Memory allocation error, if you have limited memory then this can occur. 3 Allocation of DosObject failed. 5 Could not open destination file. Disk full ? 6 Error while copying source to destination. Check protect bits on destination. 9 Could not lock a file. It may be in use by another process. Try rebooting, then retry. 10 Could not get file information. Errors 10 upto 18 could indicate a corrupt file or filesystem. 11 Error cloning file datestamp. 12 Error deleting file. 13 Could not set archive flag on file. 14 Could not set comment on file. 15 Error cloning protect flags. 16 System datestamp could not be set. 17 Volume not found. 18 Could not set delete flag on file. LOGGING ERRORS ============== fbackng: fatal: could not initiate log (n) FBackNG encountered an error while attempting to access the logfile for the first time. fbackng: fatal: cannot write to log (n) FBackNG got an error writing to the log. Overview of logfile related error return codes: Error Description ------------------------------------------------------------ 7 The logfile could not be opened. It could be locked by another process. Try identifying the lock, either close all running processes, or reboot. Then, retry. 8 An error occurred while writing to the logfile. This could indicate a DOS error, ie. protection, no more space, etc. Examine your filesystem and make sure enough resources are available. 3.3. The future ------------ When its all finished It'll probably need a GUI frontend... Any suggestions/motivations/gifts from you are welcome ! Thanks to all guys & dolls sending me registrations. It is because of YOU this program keeps getting better and better...