1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180 |
- .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 -APVWr
- ]
- [
- .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
- .IR 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
- .IR 9pcon (8).
- .PP
- .I Bind
- behaves similarly to
- .IR 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
- .IR 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:
- .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
- .IR 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:
- .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
- .I device .
- This just adds an entry to fossil's internal table.
- .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:
- .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 -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.
- .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
- .IR 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
- .IR 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
- .IR 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
- .IR 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
|