mirror of
https://github.com/PDP-10/its.git
synced 2026-01-13 15:27:28 +00:00
Build DSKUSE.
This commit is contained in:
parent
ba6c23d8fe
commit
51eb040369
@ -98,6 +98,7 @@ from scratch.
|
||||
- MAIL, Mail sending client
|
||||
- RMAIL, Mail reading client
|
||||
- DQ Device, for doing hostname resolutions. Used by COMSAT.
|
||||
- DSKUSE, disk usage information.
|
||||
|
||||
6. A brand new host table is built from the host table source and
|
||||
installed into SYSBIN; HOSTS3 > using H3MAKE.
|
||||
|
||||
@ -280,6 +280,9 @@ expect ":KILL"
|
||||
respond "*" ":link sys;ts find,sysbin;find bin\r"
|
||||
type ":vk\r"
|
||||
|
||||
respond "*" ":midas sys;ts dskuse_syseng;dskuse\r"
|
||||
expect ":KILL"
|
||||
|
||||
respond "*" ":midas sys3;ts ddtdoc_syseng;ddtdoc\r"
|
||||
expect ":KILL"
|
||||
|
||||
|
||||
@ -15,3 +15,4 @@
|
||||
- DSKDUMP: [commands](sysdoc/dskdmp.order)
|
||||
- FIND: [manual](init/find.13)
|
||||
- DIRDEV: [manual](_init_/dir.order)
|
||||
- DSKUSE: [manual](info/dskuse.10)
|
||||
|
||||
158
doc/_info_/dskuse.info
Executable file
158
doc/_info_/dskuse.info
Executable file
@ -0,0 +1,158 @@
|
||||
DSKUSE INFO PDL 2/20/76
|
||||
Last updated: PDL 5/10/76
|
||||
|
||||
DSKUSE is a program for gathering and printing information
|
||||
about the disk system.
|
||||
|
||||
DSKUSE is usually driven by a command from its JCL line, as follows:
|
||||
|
||||
:DSKUSE user statistics on the user directory given, or the XUNAME
|
||||
directory if no argument.
|
||||
:DSKUSE > user print message if XUNAME user (or user given explicitly)
|
||||
is over quota, else nothing.
|
||||
|
||||
:DSKUSE @ file statistics on all users output to TPL:, or to file
|
||||
if given.
|
||||
:DSKUSE & file output two tables, sorted on user and blocks, to TPL:
|
||||
or to file if given.
|
||||
|
||||
:DSKUSE # general statistics on disk system (takes time).
|
||||
:DSKUSE $ same as previous, only less detailed (faster, too).
|
||||
|
||||
:DSKUSE % user Gives percent of directory space used by user.
|
||||
|
||||
:DSKUSE * statistics on all users, in tabular form.
|
||||
this command is special in that it leaves you in DSKUSE.
|
||||
you may type the number or name of a column to sort by
|
||||
that column and then reprint the table (0 or USER, 1 or
|
||||
FILES, etc.). in this mode the @ command, with a file
|
||||
name optionally following it, causes subsequent sorts
|
||||
to go to the file. the commands #, %, and > are not
|
||||
available. The dual sort (& or BOTH) is, however.
|
||||
|
||||
|
||||
Details of DSKUSE Data Collection and Printing
|
||||
|
||||
Quotas and Allocations:
|
||||
|
||||
In the sections which follow, the idea of a "non-quota'ed"
|
||||
system is occasionally used. DSKUSE understands this to mean a system
|
||||
on which the total number of blocks allocated and quota'ed is zero.
|
||||
Currently all ITS's have the software for quotas and allocations, but
|
||||
only the DM system uses it. DSKUSE should do the right thing if any
|
||||
of the other ITS's start actually using quotas and allocations.
|
||||
|
||||
Single directory information:
|
||||
|
||||
For each directory covered by DSKUSE, seven pieces of information
|
||||
are stored. These are:
|
||||
|
||||
1) the directory name,
|
||||
2) the number of files in the directory,
|
||||
3) the number of links in the directory (note that these two numbers
|
||||
total to the number of "files" in the directory, ie: the number of
|
||||
lines you will see if you list it).
|
||||
4) the number of blocks used by files in the directory (this is gotten
|
||||
from the appropriate word in the directory, rather than by calculating
|
||||
it as was done in the past -- a considerable speedup).
|
||||
5) the average number of blocks per file in the directory (a floating
|
||||
point number, obviously).
|
||||
6) the directory's quota of blocks (the maximum number of blocks it
|
||||
can have without danger of some being reaped). Currently only disk
|
||||
directories on DM have non-zero quotas.
|
||||
7) the directory's allocation of blocks (the maximum number of blocks
|
||||
the directory can have without IOC). Currently only directories on
|
||||
DM have non-zero allocations.
|
||||
|
||||
The preceding is all that is needed to print the table of
|
||||
user/directory information that makes up the standard :DSKUSE or the
|
||||
body of the full-scale :DSKUSE &.
|
||||
A sample single user DSKUSE follows:
|
||||
|
||||
:DSKUSE .INFO.
|
||||
|
||||
User .INFO.
|
||||
Files 83
|
||||
Links 23
|
||||
Blocks 366
|
||||
Quota 400
|
||||
Free Blocks
|
||||
Unallocated 638
|
||||
Allocated 10618 of 41988
|
||||
Average User 214
|
||||
|
||||
Note that the "Free Blocks" lines are for a system with quotas. On a
|
||||
non-quota'ed system it would be only one line and the "Quota" line
|
||||
would not exist.
|
||||
|
||||
|
||||
Disk System Information:
|
||||
|
||||
The information printed by a :DSKUSE # is in two sections. The
|
||||
first is a series of summary lines about the state of the disk system
|
||||
when the DSKUSE was run. The second section is a table of information
|
||||
with one column for each disk pack.
|
||||
|
||||
The summary section varies depending upon how much information
|
||||
is available when it is printed. In any case it prints summaries of
|
||||
the number of directories on the system, the number of disks in the
|
||||
system, their total size in blocks, how many blocks are free, and how
|
||||
heavily the swapping allocations on those packs are being used.
|
||||
|
||||
A sample :DSKUSE # follows. Note that some of the information
|
||||
in the first section is dependent on the system having quotas. On a
|
||||
non-quota system it would not appear. The section containing tabular
|
||||
information on each disk drive would not appear in a :DSKUSE %. Also,
|
||||
of course, the lines of the table dealing with quotas and allocations
|
||||
would not appear on a non-quota system.
|
||||
|
||||
:DSKUSE #
|
||||
|
||||
Total number of users is 146, 103 with quotas, 35 with allocations
|
||||
Over quota: 23 users, 3716 blocks, average excess 161 blocks each
|
||||
Average blocks per user 218, per quota'ed user 170, per allocated user 335
|
||||
Free disk blocks: 372 unallocated, 10080 allocated
|
||||
Disk system contains 6 disks, 41988 blocks
|
||||
Free swapping blocks: 1531 out of 1800
|
||||
|
||||
Drive DK0: DK1: DK2: DK3: DK4: DK5:
|
||||
|
||||
Pack # 17 18 19 20 21 22
|
||||
Disk size 10000 10000 10000 5000 5000 5000
|
||||
|
||||
Available 9498 9498 9498 4498 4498 4498
|
||||
Allocated 0 12400 6900 4650 0 0
|
||||
Free space 95 3474 5401 1205 181 96
|
||||
|
||||
Swap area 300 300 300 300 300 300
|
||||
Free swap area 254 265 262 252 250 248
|
||||
|
||||
|
||||
Finally, a :DSKUSE * or @ or & contains takes of users in
|
||||
approximately the following format:
|
||||
|
||||
|
||||
USER Files Links Blocks Quota Alloc B/F
|
||||
----
|
||||
|
||||
AC 16 2 184 200 11.5
|
||||
AGJ 28 5 58 200 2.07
|
||||
|
||||
etc.,etc.
|
||||
|
||||
Note that whenever such a table is output the column by which it is
|
||||
sorted is underlined. The "Quota" and "Alloc" columns do not appear
|
||||
on non-quota'ed systems.
|
||||
|
||||
A :DSKUSE & is the most complete in terms of information output
|
||||
as it combines the data from the :DSKUSE # and the :DSKUSE *.
|
||||
|
||||
:DSKUSE &
|
||||
|
||||
DM DISK USAGE by PDL at 13:33:28 on 2/21/76
|
||||
|
||||
<information from :DSKUSE #>
|
||||
|
||||
<table from :DSKUSE @, sorted on user> <same table sorted on blocks>
|
||||
|
||||
|
||||
124
doc/_info_/dskuse.recent
Executable file
124
doc/_info_/dskuse.recent
Executable file
@ -0,0 +1,124 @@
|
||||
DSKUSE RECENT CHANGES (PDL)
|
||||
|
||||
---------------------------------------
|
||||
5/11/76
|
||||
---------------------------------------
|
||||
|
||||
1) New command with old name: :DSKUSE % <user> tells you how
|
||||
full a directory is. The command that used to be called % is
|
||||
now called $ (dollar-sign).
|
||||
|
||||
---------------------------------------
|
||||
2/21/76
|
||||
---------------------------------------
|
||||
|
||||
1) .INFO.;DSKUSE INFO exists!
|
||||
|
||||
2) Really, truly understands unmounted packs.
|
||||
|
||||
3) Slight change in JCL line @ and & commands. You may now give an
|
||||
optional output file spec in the JCL line to direct output there
|
||||
instead of the TTY or the TPL.
|
||||
|
||||
4) When in command mode after * command, now takes syllable input
|
||||
instead of single character. In other words, terminate with <cr>.
|
||||
Now accepts names of columns as args in this mode as well as numbers.
|
||||
|
||||
---------------------------------------
|
||||
1/9/76
|
||||
---------------------------------------
|
||||
|
||||
1) Now understands that it is possible to have inactive disk packs.
|
||||
I.e.; should work on MC machine.
|
||||
|
||||
2) Doesn't bother you with Quota/Allocation info if the totals for
|
||||
same are zero. I.e.; works on AI and ML machines.
|
||||
|
||||
---------------------------------------
|
||||
10/7/75 & 10/8/75
|
||||
---------------------------------------
|
||||
|
||||
DSKUSE has been updated to understand (somewhat) the additions to the
|
||||
disk code involving allocations and such:
|
||||
|
||||
1) On single user DSKUSEs, if the user has a quota but no allocation
|
||||
it is printed. If he has an allocation it is printed. If he has an
|
||||
allocation and his quota is not the same, it too is printed (this is
|
||||
usually the result of an administrative glitch). If he is over his
|
||||
quota, a star ("*") is printed to the right of his total of blocks.
|
||||
|
||||
2) On multiple user DSKUSEs, two new columns, called (strangely enough)
|
||||
"Quota" and "Alloc" have been added. The same procedure described
|
||||
above is followed in printing each individual's summary.
|
||||
|
||||
Another section at the top is tables of garbage about each disk. It
|
||||
is similar to what is output by the new command "#".
|
||||
|
||||
3) New command: ">" on JCL line causes DSKUSE to check your standing
|
||||
vis a vis your quota and either do nothing or say:
|
||||
|
||||
<you> OVER QUOTA BY <howmany> BLOCKS
|
||||
|
||||
This is a useful thing to stuff in your .DDT_ file.
|
||||
|
||||
4) Another new command: "#" on JCL line causes DSKUSE to grovel print
|
||||
stuff similar to what "%" prints plus a table of information about
|
||||
each disk. This grovels over all UFDs just like "*" so it takes a
|
||||
little while.
|
||||
|
||||
69) AI and ML have quotas and allocations but don't use them yet (if
|
||||
ever). Eventually DSKUSE will figure this out on the fly.
|
||||
|
||||
---------------------------------------
|
||||
5/7/73
|
||||
---------------------------------------
|
||||
|
||||
0. Uses .BREAK 12, so will work in DDT as well as MONIT
|
||||
1. Now prints system and culprit ("DM DISK USAGE by PDL")
|
||||
2. Can get simultaneous users and blocks printout with &
|
||||
3. @ only opens disk file, does not output a sort
|
||||
4. B/F now prints only 3 or 4 digits
|
||||
5. Sort column is underlined
|
||||
6. Top level & is like @ & would be if that worked
|
||||
7. Disk output is to TPL: instead of DSK:
|
||||
8. As reads image dirs, no longer prints output as it goes
|
||||
to convince you it is still alive
|
||||
|
||||
-----------------------------------------
|
||||
|
||||
PRINTS OUT DISK STATS.
|
||||
TYPE TO MONIT:
|
||||
1. DSKUSE <UNAME> or
|
||||
2. DSKUSE * N or DSKUSE @ N or DSKUSE &
|
||||
* OR @ DOES FOR ALL USERS
|
||||
|
||||
* MAKES INITIAL OUTPUT TO TTY
|
||||
@ MAKES INITIAL OUTPUT TO "DSKUSE OUTPUT"
|
||||
"N" IS COLUMN OF OUTPUT TO SORT ON
|
||||
WILL OUTPUT TO TTY. WHEN DONE,
|
||||
TYPE COLUMN NUMBER FOR A NEW SORT, OR
|
||||
"Q" TO QUIT.
|
||||
|
||||
TYPE @ TO ENTER OUTPUT TO DSK MODE, IF NOT ALREADY
|
||||
IN IT BY INITIAL "DSKUSE @".
|
||||
COLUMNS ARE 0 -- UNAME (IF NO N TYPED, N = 0)
|
||||
1 -- # OF FILES
|
||||
2 -- # OF LINKS
|
||||
3 -- # OF BLOCKS
|
||||
4 -- AVERAGE BLOCKS PER FILE
|
||||
|
||||
3. Character "&" as top-level command makes initial
|
||||
output combined username and blocks sort to disk.
|
||||
This sort may be gotten at any time thereafter by "&"
|
||||
as command character.
|
||||
|
||||
4. Prints out "global" disk statistics at top of output:
|
||||
a. System (AI, DM, or ML)
|
||||
b. Who did it
|
||||
c. DATE and TIME dskuse was done
|
||||
d. Number of USERS on disk
|
||||
e. AVERAGE blocks per user dir.
|
||||
f. Number of FREE blocks on the disk
|
||||
|
||||
--pdl (4/28/72)
|
||||
|
||||
174
doc/info/dskuse.10
Executable file
174
doc/info/dskuse.10
Executable file
@ -0,0 +1,174 @@
|
||||
-*-Text-*-
|
||||
|
||||
File: DSKUSE Node: Top Up: (DIR) Next: Normal
|
||||
|
||||
DSKUSE INFO
|
||||
|
||||
DSKUSE is a program for gathering and printing information
|
||||
about the disk system.
|
||||
|
||||
* Menu:
|
||||
|
||||
* Normal:: The standard way to run DSKUSE
|
||||
* Directory:: An explanation of the various things DSKUSE returns when
|
||||
applied to a single directory
|
||||
* Disk:: Similar to above; what DSKUSE returns when applied to the
|
||||
disk system
|
||||
|
||||
|
||||
File: DSKUSE, Node: Normal, Previous: Top, Up: Top, Next: Directory
|
||||
|
||||
DSKUSE is usually driven by a command from its JCL line, as follows:
|
||||
|
||||
:DSKUSE user statistics on the user directory given, or the XUNAME
|
||||
directory if no argument.
|
||||
:DSKUSE > user print message if XUNAME user (or user given explicitly)
|
||||
is over quota, else nothing.
|
||||
|
||||
:DSKUSE @ file statistics on all users output to TPL:, or to file
|
||||
if given.
|
||||
:DSKUSE & file output two tables, sorted on user and blocks, to TPL:
|
||||
or to file if given.
|
||||
|
||||
:DSKUSE # general statistics on disk system (takes time).
|
||||
:DSKUSE $ same as previous, only less detailed (faster, too).
|
||||
|
||||
:DSKUSE % user Gives percent of directory space used by user.
|
||||
|
||||
:DSKUSE * statistics on all users, in tabular form.
|
||||
this command is special in that it leaves you in DSKUSE.
|
||||
you may type the number or name of a column to sort by
|
||||
that column and then reprint the table (0 or USER, 1 or
|
||||
FILES, etc.). in this mode the @ command, with a file
|
||||
name optionally following it, causes subsequent sorts
|
||||
to go to the file. the commands #, %, and > are not
|
||||
available. The dual sort (& or BOTH) is, however.
|
||||
|
||||
|
||||
File: DSKUSE, Node: Directory, Previous: Normal, Up: Top, Next: Disk
|
||||
|
||||
Details of DSKUSE Data Collection and Printing
|
||||
|
||||
Quotas and Allocations:
|
||||
|
||||
In the sections which follow, the idea of a "non-quota'ed"
|
||||
system is occasionally used. DSKUSE understands this to mean a system
|
||||
on which the total number of blocks allocated and quota'ed is zero.
|
||||
Currently all ITS's have the software for quotas and allocations, but
|
||||
only the DM system uses it. DSKUSE should do the right thing if any
|
||||
of the other ITS's start actually using quotas and allocations.
|
||||
|
||||
Single directory information:
|
||||
|
||||
For each directory covered by DSKUSE, seven pieces of information
|
||||
are stored. These are:
|
||||
|
||||
1) the directory name,
|
||||
2) the number of files in the directory,
|
||||
3) the number of links in the directory (note that these two numbers
|
||||
total to the number of "files" in the directory, ie: the number of
|
||||
lines you will see if you list it).
|
||||
4) the number of blocks used by files in the directory (this is gotten
|
||||
from the appropriate word in the directory, rather than by calculating
|
||||
it as was done in the past -- a considerable speedup).
|
||||
5) the average number of blocks per file in the directory (a floating
|
||||
point number, obviously).
|
||||
6) the directory's quota of blocks (the maximum number of blocks it
|
||||
can have without danger of some being reaped). Currently only disk
|
||||
directories on DM have non-zero quotas.
|
||||
7) the directory's allocation of blocks (the maximum number of blocks
|
||||
the directory can have without IOC). Currently only directories on
|
||||
DM have non-zero allocations.
|
||||
|
||||
The preceding is all that is needed to print the table of
|
||||
user/directory information that makes up the standard :DSKUSE or the
|
||||
body of the full-scale :DSKUSE &.
|
||||
A sample single user DSKUSE follows:
|
||||
|
||||
:DSKUSE .INFO.
|
||||
|
||||
User .INFO.
|
||||
Files 83
|
||||
Links 23
|
||||
Blocks 366
|
||||
Quota 400
|
||||
Free Blocks
|
||||
Unallocated 638
|
||||
Allocated 10618 of 41988
|
||||
Average User 214
|
||||
|
||||
Note that the "Free Blocks" lines are for a system with quotas. On a
|
||||
non-quota'ed system it would be only one line and the "Quota" line
|
||||
would not exist.
|
||||
|
||||
|
||||
File: DSKUSE, Node: Disk, Previous: Directory, Up: Top
|
||||
|
||||
Disk System Information:
|
||||
|
||||
The information printed by a :DSKUSE # is in two sections. The
|
||||
first is a series of summary lines about the state of the disk system
|
||||
when the DSKUSE was run. The second section is a table of information
|
||||
with one column for each disk pack.
|
||||
|
||||
The summary section varies depending upon how much information
|
||||
is available when it is printed. In any case it prints summaries of
|
||||
the number of directories on the system, the number of disks in the
|
||||
system, their total size in blocks, how many blocks are free, and how
|
||||
heavily the swapping allocations on those packs are being used.
|
||||
|
||||
A sample :DSKUSE # follows. Note that some of the information
|
||||
in the first section is dependent on the system having quotas. On a
|
||||
non-quota system it would not appear. The section containing tabular
|
||||
information on each disk drive would not appear in a :DSKUSE %. Also,
|
||||
of course, the lines of the table dealing with quotas and allocations
|
||||
would not appear on a non-quota system.
|
||||
|
||||
:DSKUSE #
|
||||
|
||||
Total number of users is 146, 103 with quotas, 35 with allocations
|
||||
Over quota: 23 users, 3716 blocks, average excess 161 blocks each
|
||||
Average blocks per user 218, per quota'ed user 170, per allocated user 335
|
||||
Free disk blocks: 372 unallocated, 10080 allocated
|
||||
Disk system contains 6 disks, 41988 blocks
|
||||
Free swapping blocks: 1531 out of 1800
|
||||
|
||||
Drive DK0: DK1: DK2: DK3: DK4: DK5:
|
||||
|
||||
Pack # 17 18 19 20 21 22
|
||||
Disk size 10000 10000 10000 5000 5000 5000
|
||||
|
||||
Available 9498 9498 9498 4498 4498 4498
|
||||
Allocated 0 12400 6900 4650 0 0
|
||||
Free space 95 3474 5401 1205 181 96
|
||||
|
||||
Swap area 300 300 300 300 300 300
|
||||
Free swap area 254 265 262 252 250 248
|
||||
|
||||
|
||||
Finally, a :DSKUSE * or @ or & contains takes of users in
|
||||
approximately the following format:
|
||||
|
||||
|
||||
USER Files Links Blocks Quota Alloc B/F
|
||||
----
|
||||
|
||||
AC 16 2 184 200 11.5
|
||||
AGJ 28 5 58 200 2.07
|
||||
|
||||
etc.,etc.
|
||||
|
||||
Note that whenever such a table is output the column by which it is
|
||||
sorted is underlined. The "Quota" and "Alloc" columns do not appear
|
||||
on non-quota'ed systems.
|
||||
|
||||
A :DSKUSE & is the most complete in terms of information output
|
||||
as it combines the data from the :DSKUSE # and the :DSKUSE *.
|
||||
|
||||
:DSKUSE &
|
||||
|
||||
DM DISK USAGE by PDL at 13:33:28 on 2/21/76
|
||||
|
||||
<information from :DSKUSE #>
|
||||
|
||||
<table from :DSKUSE @, sorted on user> <same table sorted on blocks>
|
||||
2044
src/syseng/dskuse.76
Executable file
2044
src/syseng/dskuse.76
Executable file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user