mirror of
https://github.com/9fans/plan9port.git
synced 2025-01-12 11:10:07 +00:00
d32deab17b
Suggested by G. Brandon Robinson.
1207 lines
18 KiB
Groff
1207 lines
18 KiB
Groff
.TH FOSSILCONS 8
|
|
.SH NAME
|
|
fossilcons \- fossil console commands
|
|
.SH SYNOPSIS
|
|
.B
|
|
con /srv/fscons
|
|
.PP
|
|
.PD 0.1
|
|
.B .
|
|
.I file
|
|
.PP
|
|
.B 9p
|
|
.I T-message
|
|
...
|
|
.PP
|
|
.B bind
|
|
[
|
|
.B -b|-a|-c|-bc|-ac
|
|
]
|
|
.I new
|
|
.I old
|
|
.PP
|
|
.B dflag
|
|
.PP
|
|
.B echo
|
|
[
|
|
.B -n
|
|
]
|
|
[
|
|
.I arg
|
|
...
|
|
]
|
|
.PP
|
|
.B listen
|
|
[
|
|
.B -INd
|
|
]
|
|
[
|
|
.I address
|
|
]
|
|
.PP
|
|
.B msg
|
|
[
|
|
.B -m
|
|
.I nmsg
|
|
]
|
|
[
|
|
.B -p
|
|
.I nproc
|
|
]
|
|
.PP
|
|
.B printconfig
|
|
.PP
|
|
.B srv
|
|
[
|
|
.B -APWdp
|
|
]
|
|
.I name
|
|
.PP
|
|
.B uname
|
|
.I name
|
|
[
|
|
.I id
|
|
|
|
|
.BI : id
|
|
|
|
|
.BI % newname
|
|
|
|
|
.BI = leader
|
|
|
|
|
.BI + member
|
|
|
|
|
.BI - member
|
|
]
|
|
.PP
|
|
.B users
|
|
[
|
|
.B -d
|
|
|
|
|
.B -r
|
|
.I file
|
|
]
|
|
[
|
|
.B -w
|
|
]
|
|
.PP
|
|
.B who
|
|
.sp
|
|
.PP
|
|
.B fsys
|
|
.I name
|
|
.PP
|
|
.B fsys
|
|
.I name
|
|
.B config
|
|
[
|
|
.I device
|
|
]
|
|
.PP
|
|
.B fsys
|
|
.I name
|
|
.B venti
|
|
[
|
|
.I host
|
|
]
|
|
.PP
|
|
.B fsys
|
|
.I name
|
|
.B open
|
|
[
|
|
.B -APVWar
|
|
]
|
|
[
|
|
.B -c
|
|
.I ncache
|
|
]
|
|
.PP
|
|
[
|
|
.B fsys
|
|
.I name
|
|
]
|
|
.B close
|
|
.PP
|
|
.B fsys
|
|
.I name
|
|
.B unconfig
|
|
.sp
|
|
.PP
|
|
[
|
|
.B fsys
|
|
.I name
|
|
]
|
|
.B bfree
|
|
.I addr
|
|
.PP
|
|
[
|
|
.B fsys
|
|
.I name
|
|
]
|
|
.B block
|
|
.I addr
|
|
.I offset
|
|
[
|
|
.I count
|
|
[
|
|
.I data
|
|
]]
|
|
.PP
|
|
.in +1i
|
|
.ti -1i
|
|
[
|
|
.B fsys
|
|
.I name
|
|
]
|
|
.B check
|
|
[
|
|
.B pblock
|
|
] [
|
|
.B pdir
|
|
] [
|
|
.B pfile
|
|
] [
|
|
.B bclose
|
|
] [
|
|
.B clri
|
|
] [
|
|
.B clre
|
|
] [
|
|
.B clrp
|
|
] [
|
|
.B fix
|
|
] [
|
|
.B venti
|
|
] [
|
|
.B snapshot
|
|
]
|
|
.PP
|
|
[
|
|
.B fsys
|
|
.I name
|
|
]
|
|
.B clre
|
|
.I addr
|
|
.I offsets
|
|
\&...
|
|
.PP
|
|
[
|
|
.B fsys
|
|
.I name
|
|
]
|
|
.B clri
|
|
.I files
|
|
\&...
|
|
.PP
|
|
[
|
|
.B fsys
|
|
.I name
|
|
]
|
|
.B clrp
|
|
.I addr
|
|
.I offset
|
|
\&...
|
|
.PP
|
|
[
|
|
.B fsys
|
|
.I name
|
|
]
|
|
.B create
|
|
.I path
|
|
.I uid
|
|
.I gid
|
|
.I perm
|
|
.PP
|
|
[
|
|
.B fsys
|
|
.I name
|
|
]
|
|
.B df
|
|
.PP
|
|
[
|
|
.B fsys
|
|
.I name
|
|
]
|
|
.B epoch
|
|
[[
|
|
.B -ry
|
|
]
|
|
.I n
|
|
]
|
|
.PP
|
|
[
|
|
.B fsys
|
|
.I name
|
|
]
|
|
.B halt
|
|
.PP
|
|
[
|
|
.B fsys
|
|
.I name
|
|
]
|
|
.B label
|
|
.I addr
|
|
[
|
|
.I type
|
|
.I state
|
|
.I epoch
|
|
.I epochclose
|
|
.I tag
|
|
]
|
|
.PP
|
|
[
|
|
.B fsys
|
|
.I name
|
|
]
|
|
.B remove
|
|
.I files
|
|
\&...
|
|
.PP
|
|
[
|
|
.B fsys
|
|
.I name
|
|
]
|
|
.B snap
|
|
[
|
|
.B -a
|
|
]
|
|
[
|
|
.B -s
|
|
.I src
|
|
]
|
|
[
|
|
.B -d
|
|
.I dst
|
|
]
|
|
.PP
|
|
[
|
|
.B fsys
|
|
.I name
|
|
]
|
|
.B snapclean
|
|
[
|
|
.I timeout
|
|
]
|
|
.PP
|
|
[
|
|
.B fsys
|
|
.I name
|
|
]
|
|
.B snaptime
|
|
[
|
|
.B -a
|
|
.I hhmm
|
|
]
|
|
[
|
|
.B -s
|
|
.I interval
|
|
]
|
|
[
|
|
.B -t
|
|
.I timeout
|
|
]
|
|
.PP
|
|
[
|
|
.B fsys
|
|
.I name
|
|
]
|
|
.B stat
|
|
.IR files ...
|
|
.PP
|
|
[
|
|
.B fsys
|
|
.I name
|
|
]
|
|
.B sync
|
|
.PP
|
|
[
|
|
.B fsys
|
|
.I name
|
|
]
|
|
.B unhalt
|
|
.PP
|
|
[
|
|
.B fsys
|
|
.I name
|
|
]
|
|
.B vac
|
|
.I dir
|
|
.PP
|
|
[
|
|
.B fsys
|
|
.I name
|
|
]
|
|
.B wstat
|
|
.I file
|
|
.I elem
|
|
.I uid
|
|
.I gid
|
|
.I perm
|
|
.I length
|
|
.SH DESCRIPTION
|
|
These are configuration and maintenance commands
|
|
executed at the console of a
|
|
.MR fossil (4)
|
|
file server.
|
|
The commands are split into three groups above:
|
|
file server configuration,
|
|
file system configuration,
|
|
and file system maintenance.
|
|
This manual page is split in the same way.
|
|
.SS File server configuration
|
|
.PP
|
|
The
|
|
dot
|
|
.RI ( . )
|
|
command
|
|
reads
|
|
.IR file ,
|
|
treating each line as a command to be executed.
|
|
Blank lines and lines beginning with a
|
|
.L #
|
|
character are ignored.
|
|
Errors during execution are printed but do not stop the script.
|
|
Note that
|
|
.I file
|
|
is a file in the name space in which
|
|
.I fossil
|
|
was started,
|
|
.I not
|
|
a file in any file system served by
|
|
.IR fossil .
|
|
.PP
|
|
.I 9p
|
|
executes a 9P transaction; the arguments
|
|
are in the same format used by
|
|
.MR 9pcon (8) .
|
|
.PP
|
|
.I Bind
|
|
behaves similarly to
|
|
.MR bind (1) .
|
|
It is useful when fossil
|
|
is started without devices it needs configured
|
|
into its namespace.
|
|
.PP
|
|
.I Dflag
|
|
toggles the debug flag and prints the new setting.
|
|
When the debug flag is set, all protocol messages
|
|
and information about authentication is printed to
|
|
standard error.
|
|
.PP
|
|
.I Echo
|
|
behaves identically to
|
|
.MR echo (1) ,
|
|
writing to the console.
|
|
.PP
|
|
.I Listen
|
|
manages the network addresses at which
|
|
fossil is listening.
|
|
With no arguments,
|
|
.I listen
|
|
prints the current list of addresses and their network directories.
|
|
With one argument, listen
|
|
.I address
|
|
starts a new listener at
|
|
.IR address ;
|
|
the
|
|
.B -d
|
|
flag causes
|
|
.I listen
|
|
to remove the listener
|
|
at the given address.
|
|
By default, the user
|
|
.I none
|
|
is only allowed to attach on a connection after
|
|
at least one other user has successfully attached.
|
|
The
|
|
.B -N
|
|
flag allows connections from
|
|
.I none
|
|
at any time.
|
|
The
|
|
.B -I
|
|
flag causes
|
|
.I fossil
|
|
to check the IP address of incoming connections
|
|
against
|
|
.BR /mnt/ipok ,
|
|
rejecting attaches from disallowed addresses.
|
|
This mechanism is not intended for general use.
|
|
The server
|
|
.I sources.cs.bell-labs.com
|
|
uses it to comply with U.S. crytography
|
|
export regulations.
|
|
.PP
|
|
.I Msg
|
|
prints the maximum internal 9P message queue size
|
|
and the maximum number of 9P processes to
|
|
allocate for serving the queue.
|
|
The
|
|
.B -m
|
|
and
|
|
.B -p
|
|
options set the two variables.
|
|
.PP
|
|
.I Printconfig
|
|
prints the
|
|
.B config
|
|
line for each configured file system
|
|
and prints the
|
|
.B venti
|
|
line, if any, used to configure this file server.
|
|
.PP
|
|
.I Srv
|
|
behaves like listen but uses
|
|
.BI /srv/ name
|
|
rather than a network address.
|
|
With the
|
|
.B -p
|
|
flag,
|
|
.I srv
|
|
edits a list of console services rather than 9P services.
|
|
With no arguments,
|
|
.I srv
|
|
prints the current list of services.
|
|
With one argument, srv
|
|
.I name
|
|
starts a new service at
|
|
.IR /srv/name ;
|
|
the
|
|
.B -d
|
|
flag causes
|
|
.I srv
|
|
to remove the named service.
|
|
See the
|
|
.I [fsys] open
|
|
command below for a description of the
|
|
.B -APW
|
|
options.
|
|
.PP
|
|
.I Uname
|
|
manipulates entries in the user table.
|
|
There is no distinction between users and groups:
|
|
a user is a group with one member.
|
|
For each user, the user table records:
|
|
.TF \fImembers
|
|
.PD
|
|
.TP
|
|
.I id
|
|
the string used to represent this user in the on-disk structures
|
|
.TP
|
|
.I name
|
|
the string used to represent this user in the 9P protocol
|
|
.TP
|
|
.I leader
|
|
the group's leader (see Plan 9's
|
|
.MR stat (5)
|
|
for a description of the special privileges held by a group leader)
|
|
.TP
|
|
.I members
|
|
a comma-separated list of members in this group
|
|
.PP
|
|
The
|
|
.I id
|
|
and
|
|
.I name
|
|
are usually the same string, but need not be.
|
|
Once an
|
|
.I id
|
|
is used in file system structures archived to Venti,
|
|
it is impossible to change those disk structures,
|
|
and thus impossible to rename the
|
|
.IR id .
|
|
The translation from
|
|
.I name
|
|
to
|
|
.I id
|
|
allows the appearance of renaming the user even
|
|
though the on-disk structures still record the old name.
|
|
(In a conventional Unix file system, the
|
|
.I id
|
|
is stored as a small integer rather than a string.)
|
|
.I Leader
|
|
and
|
|
.I members
|
|
are names, not ids.
|
|
.PP
|
|
The first argument to
|
|
.I uname
|
|
is the
|
|
.I name
|
|
of a user.
|
|
The second argument is a verb, one of:
|
|
.TF \fI%newname
|
|
.PD
|
|
.TP
|
|
.I id
|
|
create a user with name
|
|
.RI ` name '
|
|
and id
|
|
.RI ` id ;'
|
|
also create a home directory
|
|
.BI /active/usr/ uname \fR
|
|
.TP
|
|
.BI : id
|
|
create a user with name
|
|
.RI ` name '
|
|
and id
|
|
.RI ` id ,'
|
|
but do not create a home directory
|
|
.TP
|
|
.BI % newname
|
|
rename user
|
|
.RI ` name '
|
|
to
|
|
.RI ` newname ,'
|
|
throughout the user table
|
|
.TP
|
|
.BI = leader
|
|
set
|
|
.IR name 's
|
|
group leader
|
|
to
|
|
.IR leader .
|
|
.TP
|
|
.BI =
|
|
remove
|
|
.IR name 's
|
|
group leader; then all members will be
|
|
considered leaders
|
|
.TP
|
|
.BI + member
|
|
add
|
|
.I member
|
|
to
|
|
.IR name 's
|
|
list of members
|
|
.TP
|
|
.BI - member
|
|
remove
|
|
.I member
|
|
from
|
|
.IR name 's
|
|
list of members
|
|
.LP
|
|
If the verb is omitted, the entire entry for
|
|
.I name
|
|
is printed, in the form
|
|
`\fIid\fL:\fIname\fL:\fIleader\fL:\fImembers\fR.'
|
|
.LP
|
|
The end of this manual page gives examples.
|
|
.PP
|
|
.I Users
|
|
manipulates the user table.
|
|
The user table is a list of lines in the form printed
|
|
by the
|
|
.I uname
|
|
command.
|
|
The
|
|
.B -d
|
|
flag resets the user table with the default:
|
|
.IP
|
|
.EX
|
|
adm:adm:adm:sys
|
|
none:none::
|
|
noworld:noworld::
|
|
sys:sys::
|
|
glenda:glenda:glenda:
|
|
.EE
|
|
.PP
|
|
Except
|
|
.BR glenda ,
|
|
these users are mandatory: they must appear in all user
|
|
files and cannot be renamed.
|
|
.PP
|
|
The
|
|
.B -r
|
|
flag reads a user table from the named
|
|
.I file
|
|
in file system
|
|
.BR main .
|
|
The
|
|
.B -w
|
|
flag writes the table to
|
|
.B /active/adm/users
|
|
on the file system
|
|
.BR main .
|
|
.B /active/adm
|
|
and
|
|
.B /active/adm/users
|
|
will be created if they do not exist.
|
|
.PP
|
|
.I Users
|
|
.B -r
|
|
.B /active/adm/users
|
|
is automatically executed when the file system
|
|
.B main
|
|
is opened.
|
|
.PP
|
|
.I Users
|
|
.B -w
|
|
is automatically executed after each change to the user
|
|
table by the
|
|
.I uname
|
|
command.
|
|
.PP
|
|
.I Who
|
|
prints a list of users attached to each active connection.
|
|
.SS File system configuration
|
|
.I Fsys
|
|
sets the current file system to
|
|
.IR name ,
|
|
which must be configured and open (q.v.).
|
|
The current file system name is
|
|
displayed as the file server prompt.
|
|
The special name
|
|
.B all
|
|
stands for all file systems;
|
|
commands applied to
|
|
.B all
|
|
are applied to each file system in turn.
|
|
The commands
|
|
.BR config ,
|
|
.BR open ,
|
|
.BR venti ,
|
|
and
|
|
.B close
|
|
cannot be applied to
|
|
.BR all .
|
|
.PP
|
|
.I Fsys
|
|
takes as an optional argument
|
|
(after
|
|
.BR name )
|
|
a command to execute on the named file system.
|
|
Most commands require that the named file system
|
|
be configured and open; these commands can be invoked
|
|
without the
|
|
.BI fsys " name
|
|
prefix, in which case the current file system is used.
|
|
A few commands
|
|
.RB ( config ,
|
|
.BR open ,
|
|
and
|
|
.BR unconfig )
|
|
operate on unopened file systems; they require the prefix.
|
|
.PP
|
|
.I Config
|
|
creates a new file system named
|
|
.I name
|
|
using disk file
|
|
.IR device .
|
|
This just adds an entry to fossil's internal table.
|
|
If
|
|
.I device
|
|
is missing,
|
|
the
|
|
.I file
|
|
argument to
|
|
.IR fossil 's
|
|
.B -f
|
|
option will be used instead;
|
|
this allows the
|
|
.I fossil
|
|
configuration file to avoid naming the partition that it is embedded in,
|
|
making it more portable.
|
|
.PP
|
|
.I Venti
|
|
establishes a connection to the Venti server
|
|
.I host
|
|
(by default, the environment variable
|
|
.B $venti
|
|
or the network variable
|
|
.BR $venti )
|
|
for use by the named file system.
|
|
If no
|
|
.I venti
|
|
command is issued before
|
|
.IR open ,
|
|
the default Venti server will be used.
|
|
If the file system is open,
|
|
and was not opened with the
|
|
.B -V
|
|
flag,
|
|
the command redials the Venti server.
|
|
This can be used to reestablish broken connections.
|
|
It is not a good idea to use the command to switch
|
|
between Venti servers, since Fossil does not keep track
|
|
of which blocks are stored on which servers.
|
|
.PP
|
|
.I Open
|
|
opens the file system, reading the
|
|
root and super blocks and allocating an in-memory
|
|
cache for disk and Venti blocks.
|
|
The options are:
|
|
.TF "-c\fI ncache
|
|
.PD
|
|
.TP
|
|
.B -A
|
|
run with no authentication
|
|
.TP
|
|
.B -P
|
|
run with no permission checking
|
|
.TP
|
|
.B -V
|
|
do not attempt to connect to a Venti server
|
|
.TP
|
|
.B -W
|
|
allow wstat to make arbitrary changes to the user and group fields
|
|
.TP
|
|
.B -a
|
|
do not update file access times;
|
|
primarily to avoid wear on flash memories
|
|
.TP
|
|
.B -r
|
|
open the file system read-only
|
|
.TP
|
|
.BI -c " ncache
|
|
allocate an in-memory cache of
|
|
.I ncache
|
|
(by default, 1000)
|
|
blocks
|
|
.PP
|
|
The
|
|
.I -APW
|
|
settings can be overridden on a per-connection basis
|
|
by the
|
|
.I srv
|
|
command above.
|
|
.PP
|
|
.I Close
|
|
flushes all dirty file system blocks to disk
|
|
and then closes the device file.
|
|
.PP
|
|
.I Unconfig
|
|
removes the named file system (which must be closed)
|
|
from fossil's internal table.
|
|
.br
|
|
.ne 3
|
|
.SS File system maintenance
|
|
.I Bfree
|
|
marks the block at disk address
|
|
.I addr
|
|
as available for allocation.
|
|
Before doing so, it prints a
|
|
.I label
|
|
command (q.v.)
|
|
that can be used to restore the block to its previous state.
|
|
.PP
|
|
.I Block
|
|
displays (in hexadecimal)
|
|
the contents of the block at disk address
|
|
.IR addr ,
|
|
starting at
|
|
.I offset
|
|
and continuing for
|
|
.I count
|
|
bytes or until the end of the block.
|
|
If
|
|
.I data
|
|
(also hexadecimal)
|
|
is given, the contents in that range are
|
|
replaced with data.
|
|
When writing to a block,
|
|
.I block
|
|
prints the old and new contents,
|
|
so that the change is easily undone.
|
|
Editing blocks is discouraged.
|
|
.PP
|
|
.I Clre
|
|
zeros an entry from a disk block.
|
|
Before doing so, it prints a
|
|
.I block
|
|
command that can be used
|
|
to restore the entry.
|
|
.PP
|
|
.I Clri
|
|
removes the internal directory entry
|
|
and abandons storage associated with
|
|
.IR files .
|
|
It ignores the usual rules for sanity, such as checking against
|
|
removing a non-empty directory.
|
|
A subsequent
|
|
.I flchk
|
|
(see
|
|
.MR fossil (4) )
|
|
will identify the abandoned storage so it can be reclaimed with
|
|
.I bfree
|
|
commands.
|
|
.PP
|
|
.I Clrp
|
|
zeros a pointer in a disk block.
|
|
Before doing so, it prints a
|
|
.I block
|
|
command that can be used to restore the entry.
|
|
.PP
|
|
.I Check
|
|
checks the file system for various inconsistencies.
|
|
If the file system is not already halted, it is halted for
|
|
the duration of the check.
|
|
If the archiver is currently sending a snapshot to Venti,
|
|
the check will refuse to run; the only recourse is to wait
|
|
for the archiver to finish.
|
|
.PP
|
|
A list of keyword options control the check.
|
|
The
|
|
.BR pblock ,
|
|
.BR pdir ,
|
|
and
|
|
.B pfile
|
|
options cause
|
|
.I check
|
|
to print the name of each block, directory, or file encountered.
|
|
.PP
|
|
By default,
|
|
.I check
|
|
reports errors but does not fix them.
|
|
The
|
|
.BR bclose ,
|
|
.BR clri ,
|
|
.BR clre ,
|
|
and
|
|
.B clrp
|
|
options specify correcting actions that may be taken:
|
|
closing leaked blocks, clearing bad file directory entries,
|
|
clearing bad pointers, and clearing bad entries.
|
|
The
|
|
.B fix
|
|
option enables all of these; it is equivalent to
|
|
.B bclose
|
|
.B clri
|
|
.B clre
|
|
.BR clrp .
|
|
.PP
|
|
By default,
|
|
.I check
|
|
scans the portion of the active file system held in the write buffer,
|
|
avoiding blocks stored on Venti or used only in snapshots.
|
|
The
|
|
.B venti
|
|
option causes
|
|
.I check
|
|
to scan the portion of the file system stored on Venti,
|
|
and the
|
|
.B snapshot
|
|
option causes
|
|
.I check
|
|
to scan old snapshots.
|
|
Specifying
|
|
.B snapshot
|
|
causes
|
|
.I check
|
|
to take a long time;
|
|
specifying
|
|
.B venti
|
|
or
|
|
(worse)
|
|
.B venti
|
|
.B snapshot
|
|
causes
|
|
.I check
|
|
to take a very long time.
|
|
.PP
|
|
.I Create
|
|
creates a file on the current file system.
|
|
.I Uid
|
|
and
|
|
.I gid
|
|
are uids
|
|
.RI ( not
|
|
unames;
|
|
see the discussion above, in the description
|
|
of the
|
|
.I uname
|
|
command).
|
|
.I Perm
|
|
is the low 9 bits of the permission mode of the file,
|
|
in octal.
|
|
The
|
|
.BR a ,
|
|
.BR d ,
|
|
and
|
|
.B l
|
|
mode prefixes
|
|
set the append-only, directory, and lock bits.
|
|
The
|
|
.I perm
|
|
is formatted as described in the
|
|
.I stat
|
|
command;
|
|
creating files or directories with the
|
|
.BR snapshot (s)
|
|
bit set is not allowed.
|
|
.PP
|
|
.I Df
|
|
prints the amount of used disk space in the write buffer.
|
|
.PP
|
|
.I Epoch
|
|
sets the low file system epoch.
|
|
Snapshots in the file system are given increasing epoch numbers.
|
|
The file system maintains a low and a high epoch number,
|
|
and only allows access to snapshots in that range.
|
|
The low epoch number can be moved forward to discard old snapshots
|
|
and reclaim the disk space they occupy.
|
|
(The high epoch number is always the epoch of the currently
|
|
active file system.)
|
|
.PP
|
|
With no argument
|
|
.I epoch
|
|
reports the current low and high epoch numbers.
|
|
The command
|
|
``\fLepoch\fI n''\fR
|
|
is used to propose changing the low epoch to
|
|
.IR n .
|
|
In response,
|
|
.I fossil
|
|
scans
|
|
.B /archive
|
|
and
|
|
.B /snapshot
|
|
for snapshots that would be discarded, printing their
|
|
epoch numbers and the
|
|
.I clri
|
|
commands necessary to remove them.
|
|
The epoch is changed only if no such paths are found.
|
|
The usual sequence of commands is (1) run epoch to
|
|
print the snapshots and their epochs, (2) clri some snapshots,
|
|
(3) run epoch again.
|
|
If the file system is completely full (there are no free blocks),
|
|
.I clri
|
|
may fail because it needs to allocate blocks.
|
|
For this situation,
|
|
the
|
|
.B -y
|
|
flag to epoch forces the epoch change even when
|
|
it means discarding currently accessible snapshots.
|
|
Note that when there are still snapshots in
|
|
.BR /archive ,
|
|
the archiver should take care
|
|
of those snapshots (moving the blocks from disk to Venti)
|
|
if you give it more time.
|
|
.PP
|
|
The
|
|
.B -r
|
|
flag to epoch causes it to remove any now-inaccessible
|
|
snapshot directories once it has changed the epoch.
|
|
This flag only makes sense in conjunction with the
|
|
.B -y
|
|
flag.
|
|
.PP
|
|
.I Epoch
|
|
is a very low-level way to retire snapshots.
|
|
The preferred way is by setting an automatic timer
|
|
with
|
|
.IR snaptime .
|
|
.PP
|
|
.I Halt
|
|
suspends all file system activity;
|
|
.I unhalt
|
|
resumes activity.
|
|
.PP
|
|
.I Label
|
|
displays and edits the label associated with a block.
|
|
When editing, a parameter of
|
|
.B -
|
|
means leave that field unchanged.
|
|
Editing labels is discouraged.
|
|
.PP
|
|
.I Remove
|
|
removes
|
|
.IR files .
|
|
.PP
|
|
.I Snap
|
|
takes a temporary snapshot of the current file system,
|
|
recording it in
|
|
.BI /snapshot/ yyyy / mmdd / hhmm \fR,
|
|
as described in
|
|
.MR fossil (4) .
|
|
The
|
|
.B -a
|
|
flag causes
|
|
.I snap
|
|
to take an archival snapshot, recording it in
|
|
.BI /archive/ yyyy / mmdd \fR,
|
|
also described in
|
|
.MR fossil (4) .
|
|
By default the snapshot is taken of
|
|
.BR /active ,
|
|
the root of the active file system.
|
|
The
|
|
.B -s
|
|
flag specifies a different source path.
|
|
The
|
|
.B -d
|
|
flag specifies a different destination path.
|
|
These two flags are useful together for moving snapshots into
|
|
the archive tree.
|
|
.PP
|
|
.I Snapclean
|
|
immediately discards all snapshots that are more than
|
|
.I timeout
|
|
minutes old.
|
|
The default timeout is the one set by the
|
|
.I snaptime
|
|
command.
|
|
The discarding is a one-time event rather than
|
|
a recurring event as in
|
|
.IR snaptime .
|
|
.PP
|
|
.I Snaptime
|
|
displays and edits the times at which snapshots are automatically
|
|
taken.
|
|
An archival snapshot is taken once a day, at
|
|
.IR hhmm ,
|
|
while temporary snapshots are taken at multiples of
|
|
.I interval
|
|
minutes.
|
|
Temporary snapshots are discarded after they are
|
|
.I timeout
|
|
minutes old.
|
|
The snapshot cleanup runs every
|
|
.I timeout
|
|
minutes or once a day, whichever is more frequent,
|
|
so snapshots may grow to an age of almost twice the timeout
|
|
before actually being discarded.
|
|
With no arguments,
|
|
.I snaptime
|
|
prints the current snapshot times.
|
|
The
|
|
.B -a
|
|
and
|
|
.B -s
|
|
options set the archive and snapshot times.
|
|
An
|
|
.I hhmm
|
|
or
|
|
.I interval
|
|
of
|
|
.L none
|
|
can be used to disable that kind of automatic snapshot.
|
|
The
|
|
.B -t
|
|
option sets the snapshot timeout.
|
|
If
|
|
.I timeout
|
|
is
|
|
.LR none ,
|
|
temporary snapshots are not automatically discarded.
|
|
By default, all three times are set to
|
|
.LR none .
|
|
.PP
|
|
.I Stat
|
|
displays metadata for each of the named
|
|
.IR files ,
|
|
in the form:
|
|
.IP
|
|
.EX
|
|
stat \fIfile elem uid gid perm length
|
|
.EE
|
|
.LP
|
|
(Replacing
|
|
.B stat
|
|
with
|
|
.B wstat
|
|
yields a valid command.)
|
|
The
|
|
.I perm
|
|
is an octal number less than or equal to 777,
|
|
prefixed with any of the following letters
|
|
to indicate additional bits.
|
|
.IP
|
|
.EX
|
|
.ta +4n
|
|
a \fRappend only
|
|
d \fRdirectory
|
|
l \fRexclusive use
|
|
s \fRis the root of a snapshot
|
|
t \fRtemporary bit
|
|
A \fRMS-DOS archive bit
|
|
G \fRsetgid
|
|
H \fRMS-DOS hidden bit
|
|
L \fRsymbolic link
|
|
S \fRMS-DOS system bit
|
|
U \fRsetuid
|
|
Y \fRsticky
|
|
.EE
|
|
.PP
|
|
The bits denoted by capital letters are included
|
|
to support non-Plan 9 systems.
|
|
They are not made visible by the 9P protocol.
|
|
.PP
|
|
.I Sync
|
|
writes dirty blocks in memory to the disk.
|
|
.PP
|
|
.I Vac
|
|
prints the Venti score for a
|
|
.MR vac (1)
|
|
archive containing the tree rooted
|
|
at
|
|
.IR dir ,
|
|
which must already be archived to Venti
|
|
(typically
|
|
.IR dir
|
|
is a directory in the
|
|
.B /archive
|
|
tree).
|
|
.PP
|
|
.I Wstat
|
|
changes the metadata of the named
|
|
.IR file .
|
|
Specifying
|
|
.B -
|
|
for any of the fields means ``don't change.''
|
|
Attempts to change the
|
|
.B d
|
|
or
|
|
.B s
|
|
bits in the
|
|
.I perm
|
|
are silently ignored.
|
|
.SH EXAMPLES
|
|
.IR Sources ,
|
|
the Plan 9 distribution file server,
|
|
uses the following configuration file:
|
|
.IP
|
|
.EX
|
|
srv -p fscons.sources
|
|
srv -p fscons.sources.adduserd
|
|
srv sources
|
|
fsys main config /dev/sdC0/fossil.outside
|
|
fsys main open -c 25600
|
|
fsys main
|
|
users /active/adm/users
|
|
listen tcp!*!564
|
|
msg -m 40 -p 10
|
|
snaptime -a 0000 -s 15
|
|
.EE
|
|
.LP
|
|
The second console is used by the daemon
|
|
that creates new accounts.
|
|
.PP
|
|
To add a new user with
|
|
.I name
|
|
and
|
|
.I id
|
|
.B rob
|
|
and create his home directory:
|
|
.IP
|
|
.EX
|
|
uname rob rob
|
|
.EE
|
|
.PP
|
|
To create a new group
|
|
.B sys
|
|
(with no home directory)
|
|
and add
|
|
.B rob
|
|
to it:
|
|
.IP
|
|
.EX
|
|
uname sys :sys
|
|
uname sys +rob
|
|
.EE
|
|
.PP
|
|
To save an old (but not yet discarded) snapshot into the archive tree:
|
|
.IP
|
|
.EX
|
|
snap -a -s /snapshot/2003/1220/0700 -d /archive/2003/1220
|
|
.EE
|