|
|
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.
|