.;---------------------------------------------------------------------------- .; .; CMD-file: I N C B A C K U P .; .; Author: Jan H. Belgraver .; .; Date: 24-JUL-84 .; .; Version: 1.8 25-Oct-88 .; .; Purpose: Performing incremental disk backups using BRU. .; .; Call: @[5,104]BIOREGAN/LB:INCBACKUP [P1] [P2] .; .; Arguments: Name Description .; P1 Optional input device Local symbol INDEV .; P2 Optional Start date Global symbol $DATE .; .; Calls to: BIOREGAN.CLB/LB:CHKDATE .; .; Description: If Input device and/or File revision date are not .; given they are asked for here. .; The date syntax is checked via a call to DATECHECK.CMD .; .; Modified by: Jan H. Belgraver 17-JUN-85 JB01 V1.1 .; 1. Backup-set name should start with AF:, not AFT:. .; 2. Info-text from SYSBACKUP.CMD to this file. .; .; Jan H. Belgraver 5-SEP-85 JB02 V1.2 .; 1. Disable use of DM0:. .; 2. Get DATECHECK.CMD always from [5,104] .; .; Jan H. Belgraver 3-MAR-86 JB03 V1.3 .; Perform date-check via routine in BIOREGAN.CLB .; .; Jan H. Belgraver 17-Sep-86 JB04 V1.4 .; Enable incremental backup of DB: .; .; Jan H. Belgraver 28-NOV-86 JB05 V1.5 .; 1. Disable quiet in startup .; 2. Added missing rewind tape .; 3. Runs from BIOREGAN.CLB only. .; .; Jan H. Belgraver 30-NOV-87 JB06 V1.6 .; 1. Added EXCLUDE option .; 2. Added Output Volume Label option .; 3. Allow lowercase device names. .; 4. Backupset directory listing option .; .; Jan H. Belgraver 7-Dec-87 JB07 V1.7 .; Do 1st form-feed on LA120 and spawn tape rewind before .; asking BRU backupset directory listing. .; .; Jan H. Belgraver 25-Oct-88 JB08 V1.8 .; 1. Enable use of virtual disks. .; 2. Device check now done in subroutine DEVTST. .; 3. Backup-set directory listing now default. .;---------------------------------------------------------------------------- .; .; .enable substitution .enable global .IFNINS BRU INS $BRU .sets OUTNAM "" ! Default output volume label | JB06 .sets EXDAT "" ! Default no files to be excluded | JB06 .sets EXC "" ! Default = no EXCLUDE qualifier | JB06 .disable quiet ! JB05 .disable lowercase ! JB08 ; ; Procedure to make an incremental full disk backup to tape. ; ; Note that the input disk will be dismounted. ; ; It is expected that ; ; A. The input disk is: ; 1. A system disk, or other whole disk to be backed-up ; 2. Present on DM1:, DM2: DB0:, or VEn: ; ; B. The output tape already contains a BRU backupset. ; .ask [<FALSE>] MODE Are you shure .iff MODE .PAUSE .sets INDEV P1 ! JB08 .test INDEV .if <STRLEN> gt 0 .goto DEV5 ; .DEV1: .asks [4:4] INDEV From DB0:, DM1:, DM2:, or VEn: .DEV5: .gosub DEVTST ! Check syntax and if valid device | JB08 .ift ILLDEV .goto DEV1 ! JB08 .; .TSTP2: .TEST P2 .IF <STRLEN> GT 0 .GOTO DAT5 ; .DAT1: .ASKS [8.:9.] $DATE Previous incr. backup date .GOTO DAT6 .DAT5: .SETS $DATE P2 .DAT6: @/LB:CHKDATE '$DATE' ! JB05 .; .VOLBL: ! JB06 .asks [0:12] OUTNAM Enter Volume Label .if <STRLEN> eq 0 .goto EXCL ! JB06 .sets OUTNAM "/OUT:"+OUTNAM ! JB06 .EXCL: .ask [<FALSE>] EXCLD Exclude any files or directory .iff EXCLD .goto BUPDIR ! JB06 .asks [5:55] EXDAT Enter details .sets EXC "/EXCLUDE" ! JB06 .BUPDIR: .ask [<TRUE>] LIST Backup_Set directory listing .; .CRECMD: .OPEN #1 INCBUP.CMD;1234 .DATA #1 /APP/REW/VER/DEN:1600'EXC'- .data #1 'OUTNAM'/BAC:AF:'$DATE'/REV:AFT:'$DATE' .DATA #1 'INDEV''EXDAT' .DATA #1 MM: .CLOSE #1 PIP TI:=INCBUP.CMD;1234 DMO 'INDEV'/DEV ! JB04 BRU @INCBUP.CMD PIP INCBUP.CMD;1234/DE .; .iff LIST .goto FINISH ! JB06 LAS PA ! Force form-feed | JB07 .xqt RUN $REWIND/TASK=REWIND ! JB07 BRU /REW/DIR/BAC:AF:'$DATE' MM: ! JB06 .FINISH: .EXIT .;---------------------------------------------------------------------------- .; .; Subroutine: D E V T S T .; Purpose: Checks device syntax and validity .; Author: Jan H. Belgraver .; Date: 25-Oct-88 .; Version: V1.0 25-Oct-88 .; Modified by: .;---------------------------------------------------------------------------- .; .DEVTST: .enable substitution .enable quiet .disable lowercase .sett ILLDEV .sets DRVTBL "DM1DM2DB0VE0VE1VE2VE3" .setn P 1 .setn N 0 .; Device counter .LOOP: .inc N .setn P P+3 .if P gt 22. .return .sets DEV DRVTBL['P'-3:'P'-1]+":" .sets TMP INDEV[4:4] .if TMP ne ":" .goto LP10 .sets TMP INDEV[3:3] .if TMP ne ":" .goto LP5 .sets INDEV INDEV+"0:" .LP5: .if INDEV ne DEV .goto LOOP .setf ILLDEV .LP10: .return