Volume management UDCs and scripts

»  Home

» Software
» Papers & Training
» Java

Jeff Vance, CSY
13 Mar 1998
updated: 29 Jul 2005

Contents

There are 6 main UDCs in this collection of Volume Set Management UDCs, each replacing the MPE command of the same name: NEWGROUP, NEWACCT, NEWUSER, PURGEGROUP, PURGEACCT, PURGEUSER, ALTGROUP, ALTACCT, ALTUSER. The original purpose remains to make it easier for system managers to manage disk space consumption on their system, particularly on the system volume set.

The situations being addressed are targeted more at larger sites where there are several account managers (users with AM capability) who create groups in accounts. The problem is that the account has a parallel structure on a User Volumeset but the AM does not create the group on the User Volumeset. Instead, the group is created only on the system volumeset with the corresponding disk space residing on MPEXL_USER_VOLUME_SET. Even if the AM creates the parallel group structure on the User Volumeset, s/he may forget to HOME the group to this User Volumeset, forget to set FILES=0 for the system volumeset, etc.

The bottom line is the User Volumes are complicated and not intuitive on MPE/iX, but these UDCS should be able to greatly reduce the frustration and mistakes in managing Volumesets on your systems.

Disk space management is achieved by mapping account and group names to the desired User Volumeset in a way that the creator does not need to remember to specify any volumeset information on the command line. The NEWACCT, PURGEACCT, NEWGROUP and PURGEGROUP UDCs allow groups and accounts to be created and deleted without needing to execute the command once on the system volumeset and once on one or more user volumesets.

All of the UDCs described below accept the full syntax of the MPE command that they are replacing. In fact, if a specific user volume set is specified in one of these commands via ONVS=, the UDC will operate on only that volume set. However, the expected usage is to omit volume set names all together and let the UDCs select the desired user volume set(s) for you.

Some side benefits of these UDCs, not directly related to user volumes, are:
  • NEWACCT, NEWGROUP, NEWUSER, PURGEACCT, PURGEGROUP, PURGEUSER, ALTACCT, ALTGROUP, ALTUSER are able to log the command image, date/time, originator to a simple log file.
  • NEWACCT forces CV and UV capability if omitted.
  • If a password is supplied to NEWACCT, NEWGROUP, NEWUSER, ALTACCT, ALTGROUP or ALTUSER a minimum character length is enforced. Also ;pass=* can be specified to produce a random password value.
  • PURGEACCT can purge all accounts on User Volumes corresponding to the home volume sets for each group within the account.
  • PURGEGROUP supports wildcarded group names.
  • NEWGROUP can be told to require SM capability in order to execute.
All of the UDCs support a simple mechanism, via the _UDCVOL_SKIP variable, to allow the bulk of the UDC to be skipped. This may be necessary when invoking these UDCs from Qedit, certain jobs, or other environments not favorable to the UDC. Additionally, all of the UDCs detect being run inside MPEX and create a child CI process for this environmenti and bypass the UDC entirely.

ACCTUVOL configuration file

In order for NEWGROUP and NEWACCT to be able to omit the ONVS= argument, a user volumeset configuration file is used. This config file is not used by the other UDCs. This file simply maps [group.]account or just account names to user volumeset names. The default name for this file is ACCTUVOL.PUB.SYS, but is easily overridden via the _USERVOL_FILE variable. The format of the ACCTUVOL files is:
    # comments...
    group.acct (17 chars)   user_vol_name1 (32 chars)
    @grp@.acct              user_vol_name2
    @.acct                  user_vol_name3
    acctname1 (8 chars)     user_volume_set_name4
    acct@                   user_volume_set_name5
    @acct@                  user_volume_set_name6
    ...     
A tab or space must separate the account name from the volumeset name. It is recommended to grant read access to this file to all users who will be using the NEWACCT and NEWGROUP UDCs. When the UDCs search this config file they stop on the first match, therefore more specific entries should precede more generic entries.

It is important to remember that the ACCTUVOL file is not a "database" or inventory of current system volumeset information. Rather, it is used to direct which volumesets certain groups and accounts must reside on. If your company has a naming convention for many of the accounts on your system you may be able to use wildcarded account names in the ACCTUVOL file to control the volumesets of future accounts. For instance, if all manufacturing related accounts are required to live on the MFG_VOLSET and also, by convention, begin with the letters "MFGxxxx" then a simple ACCTUVOL entry guarantees that all future manufacturing accounts will be located on the correct volumeset. If ACCTUVOL contains the following entry:
     MFG@    MFG_VOLSET     
then all accounts beginning with "MFG" will be created in the MFG_VOLSET volumeset.

The ACCTUVOL file can also be used to specify the volumeset for individual groups, although this is probably a less common use. If a single account will contain groups that will be homed to several different volumesets, and if these groups have a naming convention (pattern) then the ACCTUVOL configuration file is useful. For example, if all groups in the AR account on the PAY1_VOLSET end with the letters "PAY", and all groups in the AR account on the AR_VOLSET end with the letters "AR" then the ACCTUVOL can cause future new groups to be put on the desired volumeset. For instance, if ACCTUVOL contained:
     @AR.AR     AR_VOLSET
     @PAY.AR    PAY1_VOLSET     
Then, :newgroup Y98AR.AR;cap=ia,ba,sf would create the Y98AR group in the AR_VOLSET. Likewise, :newgroup tmppay.ar;files=5000 would create the TMPPAY group in the PAY1_VOLSET. In these two cases above, the Account Manager is not concerned with the volumeset specification.

It is possible that the ACCTUVOL file does not correctly map all accounts on your system. For example, you may decide that most groups in the PRODUCT account will reside on the PRODDEV_VOLSET; however you are aware that there will be a few exceptions. Your ACCTUVOL file can contain the generic entry for the PRODUCT account as follows:
     PRODUCT     PRODDEV_VOLSET     
Now if you need to create the PROTO.PRODUCT group and it will contain some very large files and thus must be on the WORK_VOLSET, the NEWGROUP UDC will still be handy. You can enter :newgroup proto.product;onvs=work_volset . This will create the PROTO group on both the system volumeset and on the WORK_VOLSET volumeset. It will also home the PROTO group to the WORK_VOLSET and enforcea minimum password length (or generate a random password if desired). And last, it will restrict files on the system volumeset.

You can create the ACCTUVOL file with you favorite editor or use the BLDUVOL script to create it based on user volumeset information on your system. If you plan on most of your groups within the same account to be HOMEVS'd to the same user volumeset then it is desireable to simply add the account name and associated user volumeset name to the ACCTUVOL file, rather than adding all of the individual group.account names.

CI variables

There are several influencing CI variables recognized by these UDCs:
  • _USERVOL_FILE. This CI variable defines the name of the user volumeset configuration file referred to as the ACCTUVOL file. If the variable is undefined then "ACCTUVOL.PUB.SYS" is assumed to be the name of the config file. Otherwise the file named in this variable is used as the config file. This variable allows a system manager to use several configuration files depending on the user, account, etc. Used by the NEWACCT and NEWGROUP UDCs.
  • _USERVOL_LOGFILE. CI variable defines the name of the log file. All of these UDCs log the command image plus a date/time stamp, the J/S number and the originators user.acct name. By default logging is enabled for all of the UDCs, but logging may be suppressed by setting this variable to "" (no value). Logging will still occur, even if the UDC is skipped via the value of _USERVOL_SKIP. More information on logging is here.
  • _USERVOL_PROMPT. This CI variable controls whether or not the user is prompted. The prompt may be for a volume set name or for confirmation to delete a specific group. Of course, no prompting occurs in batch jobs. The default is that this variable is not defined, meaning that prompting occurs for interactive users. Used by all of the UDCs.
  • _USERVOL_VERBOSE. This CI variable sets the UDCs into verbose mode. If this variable is undefined or is set to FALSE then minimal messages are seen on $stdlist. To see more details on how the UDCs are working set this variable to TRUE. Used by all of the UDCs.
  • _USERVOL_SKIP. This CI variable controls whether or not the UDCs actually execute or simply pass through to the real MPE command. The following values are accepted:
    • 'JOB' - bypass the UDC if it is executed in a job
    • 'UDC' - bypass the UDC if it is executed from within another UDC or script
    • 'PGM' - bypass the UDC if it is executed programmatically
      The default _USERVOL_SKIP value is 'JOB UDC PGM', meaning the UDCs are skipped when executed from a job, from within a UDC or script, or programmatically. Used by all of the UDCs. Even if the main parts of the UDC are skipped it will still log sucessful executions of the real command.
  • _USERVOL_PASS_MINLEN. This CI variable controls the minimum character length for an account password. The default value is 5 characters. Used by NEWACCT, NEWGROUP, NEWUSER, ALTACCT, ALTGROUP, and ALTUSER.
  • _USERVOL_ENFORCESM. This CI variable causes the UDCs to require SM capability in order to execute the command. _USERVOL_ENFORCESM is used only by NEWGROUP. The default is undefined (=FALSE), meaning that an AM user will be able to execute the NEWGROUP UDC.

UDC logging

By default all of the UDCs (newacct, newgroup, newuser, altacct, altgroup, altuser, purgeacct, purgegroup, purgeuser) log successful command execution to a log file. The default name of this logfile is "/tmp/UDCVOL/log", but this name is easily overridden via the _USERVOL_LOGFILE variable described above. The logfile needs to grant write access to all users of these UDCs. It may be important to deny read access to this file since it reveals user, account and group names. Note: password names are not visible and instead are replaced by the string "***".

If a CIRcular file is desired then the logfile must reside in the MPE namespace.

Here are the instructions for creating the logfile in the POSIX namespace with the minimal access permission:
:newdir /tmp/UDCVOL                                                       
:build /tmp/UDCVOL/log                                                    
:altsec /tmp/UDCVOL    ;repacd=(racd,td,rd:@.@)                           
:altsec /tmp/UDCVOL/log;repacd=(racd,w:@.@)          
or via the shell:
$mkdir /tmp/UDCVOL                                                        
$touch /tmp/UDCVOL/log                                                    
$chmod 555 /tmp/UDCVOL                                                    
$chmod 662 /tmp/UDCVOL/log     
The above shows everyone, "@.@", having write access to the logfile, but it is safer if you grant write access only to the Account Managers.

If the logfile exists but a "non-existent" logfile error is reported then most likely the user lacks TD (traverse directory) access to one or more of the directories prior to the filename.

If logging is not desired (for all or certain users) then the _USERVOL_LOGFILE variable needs to be set to "" (empty string).

The logfile is expected to exist -- these UDCs do not build the file or any of its pathname. The file can reside in any POSIX directory or MPE group. If it is desired to use a CIRcular file then it must reside in an MPE group. If the log file does not exist an error is reported and the command will immediately stop. At this point the correct logfile needs to be created or the _USERVOL_LOGFILE variable needs to aim at the right file. If the logfile is full a CI write error will occur and the command will stop. It is up to the system manager to manage this log file.

The logfile format is as follows:
    YYYYMMDD:HHMM:#J|Snnnn:creator:command image
where:
YYYY     is the 4 digit year
MM       is the two digit month
DD       is the two digit day
HH       is the hour as a 24 hour clock
MM       is the minute (no seconds are logged)
#J|Snnn  is the job or session ID
creator  is the user.account name of the user executing the UDC
command  is the exact string executed by the real CI command, eg.
  image     :newacct, except passwords are not recorded. Instead
            passwords are replaced by "***".     
The remaining text describes the UDCs and supporting scripts.

Newgroup UDC

This UDC executes the MPE :newgroup command on the system volumeset and on the appropriate user volumeset. The target volumeset can be specified on the command line (via ONVS= or HOMEVS=), can be found in the ACCTUVOL file or can be prompted for. If none of these methods produce a user volumeset then the system volumeset is used. The precedence rules for the target volumeset are shown below:
  • command line ONVS= (or HOMEVS=) has precedence over
  • [group].acct entry in the acctuvol file, which has precedence over
  • account entry in the acctuvol file, which has precedence over
  • user prompted name, which has precedence over
  • mpexl_system_volume_set which can be abbreviated as "$sys".
Whenever the system volumeset (mpexl_system_volume_set) is used as the target volumeset this fact is high-lighted.

If a matching "group.acct" name is not found in the ACCTUVOL file the UDC looks for an entry that matches just the account name. This allows newly created groups to inherit the user volumeset of their parent account. If you prefer new groups to not reside on the same volumeset as their account then you have a few choices:
  • specify ONVS= on the NEWGROUP command line
  • add an entry to the ACCTUVOL file that captures the name of the group you are creating (remember that wildcards are supported).
Once you have an "account-only" entry in the ACCTUVOL file, all new groups within this account will inherit the associated user volumeset, unless more specific "group.acct" entries precede the account-only entry.

If a "group.acct" entry and an "account-only" entry cannot be found in the ACCTUVOL file then the user will be prompted for the target user volumeset name. See the _USERVOL_PROMPT variable for more options. At this point, the SM user can also append the entered user volumeset name to the ACCTUVOL file.

If the new group does not already exist on the system volume it is created via the :newgroup CI command. If FILES= was specified this value only applies to the user volumeset, and FILES=0 is used on the system volumeset version of the group. This prevents file space from being consumed on the system volume.

If pass= is specified then a minimum character length is enforced via the _USERVOL_PASS_MINLEN variable and defaults to five characters. The user can enter PASS=* to generate a random password.

If the parent account does not already exist on the user volumeset it will be created, as long as the user has SM capability, via the :newacct CI command. At this point the new group is created on the target user volumeset via another :newgroup CI command. If FILES= was supplied this value is applied to the user volumeset.

If the _USERVOL_FORCESM variable is set to TRUE (default is FALSE) then the NEWGROUP UDC will require the user to have SM capability. This may be useful if your account managers don't listen well.

The NEWGROUP examples.

Newacct UDC

This UDC executes the MPE :newacct command on the system volumeset and on the appropriate user volumeset. The target volumeset can be specified on the command line (via ONVS=), can be found in the ACCTUVOL config file or can be prompted for. If none of these methods produce a user volumeset then the system volumeset is used. The precedence rules for the target volumeset are shown below:
  • command line ONVS= has precedence over
  • account entry in the acctuvol file, which has precedence over
  • user prompted name, which has precedence over
  • mpexl_system_volume_set, which can be abbreviated as "$sys".
If a matching "acct" name is not found in the ACCTUVOL file the UDC prompts the user for the target user volumeset name. See the _USERVOL_PROMPT CI variable for more options. At this point, the user can also append the entered user volumeset name to the ACCTUVOL file.

If the new account does not already exist on the system volume it is created via the :newacct command. If FILES= was specified this value only applies to the user volumeset, and FILES=0 is used on the system volumeset version of the account. This prevents file space from being consumed on the system volume. However, there is a SYSFILES= parameter which allows the SM to limit the files on the system volume set. Thus file space can be limited on the user and system volumes with a single command, eg. :newacct foo,mgr;files=10000;sysfiles=500.

If the system manager has omitted UV and CV these two capabilities are added to the :newacct command line applied to the system volumeset.

If pass= is specified then a minimum character length is enforced via the _USERVOL_PASS_MINLEN variable and defaults to five characters. The user can enter PASS=* to generate a random password.

Next, the new account is created on the target user volumeset via another :newacct CI command. If FILES= was supplied this value is applied to the user volumeset. A PUB group is automatically created via the :newacct command and this UDC homes the PUB group to the target volumeset. The FILES= value is also applied to the PUB group on the user volumeset.

NEWACCT examples.

Newuser UDC

This UDC executes the MPE :newuser command, accepting all of the MPE parameters. The main purpose of this UDC is to facilitate logging of the command and to support minimum password lengths. Also a random password can be generated via ;pass=*.

Purgegroup UDC

This UDC executes the MPE :purgegroup command on the system volumeset and on the appropriate user volumeset. The target volumeset can be specified on the command line (via ONVS=). However, it is simpler to let this UDC determine if a user volumeset exists for the target group, and if so delete the group from the user volumeset and from the system volumeset. This UDC does not use the ACCTUVOL config file.

The target group name can be wildcarded so that more than one group can be deleted at a time. Additionally, the volumeset name, specified as ONVS=, can be wildcarded to select only groups homed to certain volumesets.

The user has several choices: he can ask for confirmation prior to deleting a group, he can silently purge all qualifying groups, or he can quit.

Also the _USERVOL_PROMPT variable can be set to FALSE which will suppress the "Purge YES/NO?" prompt and supply an answer of "y".

Purgeacct UDC

This UDC executes the MPE :purgeacct command on the system volumeset and on the appropriate user volumeset(s). The target volumeset can be specified on the command line (via ONVS=). However, this UDC is designed to discover all user volumesets that the target account resides on, and allows the user to delete the account (and all groups) from each user volumeset and from the system volumeset. This UDC does not use the ACCTUVOL config file.

The user has several choices: she can view all the volume sets that have the same account name, she can ask for confirmation prior to deleting an account, she can silently purge the account in each qualifying volume set, or she can quit.

Also the _USERVOL_PROMPT variable can be set to FALSE which will suppress the "Purge YES/NO?" prompt and supply an answer of "y".

Purgeuser UDC

This UDC executes the MPE :purgeuser command. The main purpose of this UDC is to facilitate logging of the command. Also the _USERVOL_PROMPT variable can be set to FALSE which will suppress the "Purge YES/NO?" prompt and supply an answer of "y".

Altgroup UDC

This UDC executes the MPE :altgroup command, accepting all of the MPE parameters. The main purpose of this UDC is to facilitate logging of the command and to support minimum password lengths. Also a random password can be generated via ;pass=*.

Altacct UDC

This UDC executes the MPE :altacct command, accepting all of the MPE parameters. The main purpose of this UDC is to facilitate logging of the command and to support minimum password lengths. Also a random password can be generated via ;pass=*.

Altuser UDC

This UDC executes the MPE :altuser command, accepting all of the MPE parameters. The main purpose of this UDC is to facilitate logging of the command and to support minimum password lengths. Also a random password can be generated via ;pass=*.

UDC Examples

Newacct examples

(assume ACCTUVOL does not initially have any matching entry for acct "FOO")
  • (a)
    NEWACCT foo,foomgr;cap=ia,ba,sf,am,sm,ph,pm;files=5555
       Please enter the volumeset for account "foo": foo_volset
       Append "foo --> foo_volset" to config file (ACCTUVOL.PUB.SYS)?
        Yes or No? no
        Entry not added to config file.  This means all new groups added to this
        account will not find a match in the "ACCTUVOL.PUB.SYS" file, forcing your
        AM's to enter the appropriate volumeset name for each :newgroup command.
        You may edit "ACCTUVOL.PUB.SYS" to include the above entry.
    
       Executing :newacct foo,foomgr ;cap=ia,ba,sf,am,sm,ph,pm;files=0
       Executing :newacct foo,foomgr ;onvs=foo_volset;files=5555
    
    analysis: Since the FOO account was not found in the ACCTUVOL file the user was prompted for the user volumeset name for this account. The user declines adding this volumeset to the ACCTUVOL file so the next time a group is added to the FOO account the user will again be prompted for a user volumeset name. The first newacct command creates FOO and PUB.FOO on the system volumeset and sets files=0 to keep user files off the system volumeset. The second newacct creates FOO and PUB.FOO on the foo_volset with the specified files= value. You can't see that the PUB.FOO group on the system volumeset was homed to the foo_volset.
  • (b)
    purgeacct foo (yes)
    NEWACCT foo,foomgr;cap=ia,ba,sf,am,sm,ph,pm;files=5555;onvs=foo_volset
       Executing :newacct foo,foomgr ;cap=ia,ba,sf,am,sm,ph,pm;files=0
       Executing :newacct foo,foomgr ;onvs=foo_volset;files=5555
    
    analysis: this example shows that you can specify ONVS= (thus not needing to add an entry to the ACCTUVOL config file) yet only enter one newacct command. Also, note that the files= is set up correctly to force disk space to the user volumeset.
  • (c)
    purgeacct foo (yes)
    setvar _uservol_verbose true
    NEWACCT foo,foomgr;cap=ia,ba,sf,am,sm,ph,pm;files=5555
       Using "ACCTUVOL.PUB.SYS" as the user volume config file.
       Searching for "foo" in config file...
          ... not found
       Please enter the volumeset for account "foo": foo_volset
       Append "foo --> foo_volset" to config file (ACCTUVOL.PUB.SYS)?
        Yes or No? yes
       Executing :newacct foo,foomgr ;cap=ia,ba,sf,am,sm,ph,pm;files=0
       Executing :newacct foo,foomgr ;onvs=foo_volset;files=5555
       Executing :altgroup pub.foo;homevs=foo_volset;files=0
       Executing :altgroup pub.foo;onvs=foo_volset;files=5555
    
    analysis: this is the same example as in (a) above, except that we've enabled verbose mode (via the _uservol_verbose CI variable) and we decided to append this volumeset name to the ACCTUVOL file.
  • (d)
    purgeacct foo (yes)
    NEWACCT foo,foomgr;cap=ia,ba,sf,am,sm,ph,pm;files=5555
       Using "ACCTUVOL.PUB.SYS" as the user volume config file.
       Searching for quot;foo" in config file...
           quot;foo"  --->  "foo_volset"
       Executing :newacct foo,foomgr ;cap=ia,ba,sf,am,sm,ph,pm;files=0
       Executing :newacct foo,foomgr ;onvs=foo_volset;files=5555
       Executing :altgroup pub.foo;homevs=foo_volset;files=0
       Executing :altgroup pub.foo;onvs=foo_volset;files=5555
    
    analysis: this is the same example as in (c) above, except that we aren't prompted for the target volumeset name since in (c) we added this entry to the ACCTUVOL file. _uservol_verbose is still true.
  • (e)
    purgeacct foo (yes)
    setvar _uservol_verbose false
    NEWACCT foo,foomgr;cap=ia,ba,sf,am,sm,ph,pm;files=5555S
       Executing :newacct foo,foomgr ;cap=ia,ba,sf,am,sm,ph,pm;files=0
       Executing :newacct foo,foomgr ;onvs=foo_volset;files=5555
    
    analysis: this is the same example as in (d) above, except that we have disabled verbose output by setting _uservol_verbose to false. This example is typical of creating a new account with the ACCTUVOL file setup to trap this account to the desired user volumeset.

Newgroup examples

  • (f)
    NEWGROUP bar.foo
       Executing :newgroup bar.foo ;files=0 ;homevs=foo_volset
       Executing :newgroup bar.foo ;onvs=foo_volset;files=
    
    analysis: this is the simpliest example of creating a group on the system and user volumesets. The foo_volset was found in the ACCTUVOL file and applied to the newgroup command.
  • (g)
    setvar _uservol_verbose true
    NEWGROUP bar.foo
       Using "ACCTUVOL.PUB.SYS" as the user volume config file.
       Searching for "BAR.FOO" in config file...
           ... not found
       Searching for quot;foo" in config file...
           quot;foo"  --->  "foo_volset"
       Executing :newgroup bar.foo ;files=0 ;homevs=foo_volset
       Executing :newgroup bar.foo ;onvs=foo_volset;files=
    
    analysis: this is the same example as (f) except we are in verbose mode. Note that a specific group.acct entry was not found in ACCTUVOL, but a general account name-only entry was located. This is the entry that we added in example (c) above.
  • (h)
    NEWGROUP grp1.foo;onvs=another_vs
       Executing :newgroup grp1.foo files=0 ;homevs=another_vs
       Executing :newgroup grp1.foo ;onvs=another_vs;files=
    
    analysis: ONVS= in the command line caused the group to be created on "another_vs". The ACCTUVOL file was never searched. Files are still not permitted on the system volumeset.
  • (i)
    purgeacct foo;onvs=foo_volset (yes)
    NEWGROUP grp2.foo;cap=ia,ba,sf;files=2222
       Executing :newgroup grp2.foo ;cap=ia,ba,sf;files=0 ;homevs=foo_volset
       Account quot;foo" doesn't exist on the "foo_volset" volumeset.
        Enter FILES= (disc limit) for foo_volset: 5555
        Enter username (acct mgr) for foo_volset: foomgr
       Execute ":newacct FOO,foomgr;files=5555;onvs=foo_volset"
        Yes or No? yes
       Executing :newacct FOO,foomgr;files=5555;onvs=foo_volset
       Executing :newgroup grp2.foo ;onvs=foo_volset;files=
    
    analysis: this example shows the FOO account on the system volumeset only (it was purged from the user volumeset). The foo_volset is found in the ACCTUVOL file for the FOO account (example C shows how foo_volset was added to the file). GRP2 is created on the system volumeset with files=0 and homed to the foo_volset. The NEWGROUP UDC discovers that the FOO account does not exist on the foo_volset volumeset, and, since the user has SM capability, the UDC prompts for the disk limit and account manager name for FOO on the foo_volset. The FOO account is created on the target volumeset, and finally the GRP2 group is created on the same volumeset.

Blduvol

This CI script creates an "ACCTUVOL" volumeset configuration file.
   Syntax: blduvol [config_filename] [fileset]     
The default config filename is "ACCTUVOL" local to the user's CWD. This script will not overwrite an existing config file of the same name so you will need to resolve that prior to executing BLDUVOL.

The default fileset is all groups on your system; however, if you prefer to create your ACCTUVOL file based on a subset of groups, specifiy this parameter in POSIX syntax. For example, to only consider groups in all production accounts (PROD@) enter the fileset argument as:
     :blduvol , /PROD@/@     

BLDUVOL finds accounts on your system where all of the groups are homed to the same user volumeset. For each account that meets this criteria an entry is appended to the ACCTUVOL file as:
     ACCOUNT_NAME    VOLUME_SET_NAME     
If a single group in an account is on a different volumeset from the other groups then no entry is written to the ACCTUVOL file.

It can take some time for BLDUVOL to complete. It can process approximately 5,000 groups per minute. Every 1000 groups a progress message is written to $stdlist.

Example:
   :blduvol myconfig
   BLDUVOL.SCRIPTS.SYS  12:45 PM  Version A.02

   Creating User Volume Config file: myconfig
            4:48 PM
    You have 120284 groups matching /[A-Z@/[A-Z]@
    Expect approx 24 minutes to complete
     progress: processing account "ACDTSTNM"...
     progress: processing account "ALLEGRO4"...
     ...
    2 groups live on user volume sets
            5:12 PM

   Please review the user volume config file "myconfig"

   :print myconfig
   # This config file maps [group.]account to user volume sets.
   # More specific entries should precede more generic entries.
   # Wildcarding is fully supported. (Produced by BLDUVOL.SCRIPTS.SYS)
   FOO              FOO_VOLSET

analysis: of the 120,284 groups on this system only 2 were homed to a user volumeset. Those two groups were written to the config file (named myconfig in this example). Since both groups live on the same user volumeset BLDUVOL wrote the generic account name-only entry to the config file. In this example the two groups on user volumesets are the only groups in the FOO account.

Chkgrp

   Syntax: chkgrp [group[.acct]]     
The default is chkgrp @.!hpaccount

This CI script reports the following:
  • all volumesets on the system
  • all volumesets in the ACCTUVOL config file that match the "group" parameter
  • all groups that match the parameter and whether or not each group is homed to the system or to a user volumeset.
Example:

   :chkgrp
   CHKGRP.SCRIPTS.SYS  12:33 PM  Version A.01

   Contents of "ACCTUVOL.PUB.SYS" User Volume Set Config FIle follows:
   (only entries matching "@.VANCE" are shown)
   [Group.]Account  ---->  User Volume Set
   ---------------         ---------------
     PUB.VANCE               vs_testA_one
   1 matches.

    ------------------------------
    | ACTUAL system data follows:|
    ------------------------------
 
    Volume Sets on JOY:

       MPEXL_SYSTEM_VOLUME_SET
       FOO_VOLSET

    Groups on System Volume      Groups on User Volumes (volset)
    -----------------------      -------------------------------
     /VANCE/DOC/
     /VANCE/HELPTEXT/     
                                 /VANCE/PUB (FOO_VOLSET)
     /VANCE/RLTOOLS/

    Totals:      3 groups on system volume
    Totals:      1 groups on user volumes
analysis: the chkgrp script was invoked for all groups in the logon account, which is the default. It found one entry in the ACCTUVOL file which matched either the group.acct or just the account name. It found 2 volumesets on the system (named JOY). The 4 groups in the VANCE account were shown to be either on the system volume set only or homed to a user volumeset.

Top    JazzInfo    Hosted by 3kRanger.com    email 3kRanger    Updated