From: CRDGW2::CRDGW2::MRGATE::"SMTP::CRVAX.SRI.COM::RELAY-INFO-VAX" 27-SEP-1989 21:08 To: MRGATE::"ARISIA::EVERHART" Subj: Re: Merging two or more SYSUAF.DAT files Received: From DON.WAISMAN.WISC.EDU by CRVAX.SRI.COM with TCP; Wed, 27 SEP 89 16:45:25 PDT Received: from VMSmail by don.waisman.wisc.edu; Wed, 27 Sep 89 18:44 CDT Message-Id: <19092718445181@don.waisman.wisc.edu> Date: Wed, 27 Sep 89 18:44 CDT From: "Carl Karcher, Room 535 WC, 3-5896" Subject: Re: Merging two or more SYSUAF.DAT files To: INFO-VAX@CRVAX.SRI.com X-Vms-To: IN%"INFO-VAX@CRVAX.SRI.COM" In response the posting about merging UAF files: You don't need a program to do this. The CONVERT/MERGE utility can merge one UAF file into another. The simplest way would be to delete the records you don't want from the "input" UAF and use CONVERT/MERGE to merge the input to the output. However, since the format of the UAF as not changed in V5 you can simply copy the existing V4 UAF file to the new V5 system. Note that the VMS 4.6 distribution copy of SYSUAF.DAT had 2 structure errors in it that appeared when ANALYZE/RMS was done. They were benign and easily fixed using convert so if you see them don't let it scare you. If you need to select records from a UAF file, use SORT with a "specification" file. In the specification file you can define UAF record fields and conditionally select which records will end up in the output file using simple tests on the fields. There are examples of using specification files in the SORT/MERGE manual. I've attached an example specification file that I've used recently to merge the UAF's on two clusters into one. ------------------------EXAMPLE UAF.SRT --------------------------------------- ! Sort specification file to select records from the UAF. Input to SORT/SPEC. ! Intended for moving selected UAF records from one file to another ! ! To use: ! Make an FDL file of SYSUAF.DAT: ANAL/RMS/FDL=SYSUAF.FDL SYS$SYSTEM:SYSUAF.DAT ! Create the output file using: CREATE/FDL=SYSUAF.FDL NEWUAF.DAT ! Use this file with SORT: SORT/SPEC=this_file SYSUAF.DAT NEWUAF.DAT/OVER ! Then on the target system: CONVERT/MERGE NEWUAF.DAT SYSUAF.DAT ! ! Define some fields in the uaf record (we only use USER and DEVICE here) /FIELD=(NAME=USER,POS:5,SIZE:32) /FIELD=(NAME=GRP,POS:37,SIZE:2,BINARY,UNSIGNED) /FIELD=(NAME=MEM,POS:39,SIZE:2,BINARY,UNSIGNED) /FIELD=(NAME=ACCOUNT,POS:53,SIZE:31) /FIELD=(NAME=OWNER,POS:88,SIZE:31) /FIELD=(NAME=DEVICE,POS:118,SIZE:15) /FIELD=(NAME=DIRECTORY,POS:150,SIZE:63) /KEY=USER ! We sort by USERNAME /CONDITION=(NAME=DISK, ! Define condition for disk selection TEST=( DEVICE EQ "HARRY$DUA0: " ! Select records by disk OR DEVICE EQ "ETHEL$DUA0: " ! Be sure to pad fields with spaces OR DEVICE EQ "DISK$HARRY_SYS:" OR DEVICE EQ "DISK$ETHEL_SYS:" OR DEVICE EQ "DISK$SYNTAX: " OR DEVICE EQ "DISK$WORDS: " OR DEVICE EQ "SITE$ROOT: ")) /INCLUDE=(CONDITION=DISK) ! Include matching records in output --- Carl Karcher Internet: KARCHER@WAISMAN.WISC.EDU Systems Manager Bitnet: KARCHER@WISCPSL UW - Waisman Center Hepnet: KARCHER::PSLC Madison, Wisconsin PSTNet: (608) 263-5896