EXPORTFS(4)EXPORTFS(4)
NAME
exportfs, srvfs – file server plumbing
SYNOPSIS
exportfs
[
-dsR
]
[
-m
msize
]
[
-r
root
]
[
-P
patternfile
]
[
-S
srvfile
]
srvfs
[
-dR
]
[
-p
perm
]
[
-P
patternfile
] [
-e
exportprog
]
name
path
DESCRIPTION
Exportfs
is a user level file server that allows Plan 9 cpu servers, rather
than file servers, to export portions of a name space.
It is usually started by other programs such as
rcpu(1)
after a secure channel has been established.
Exportfs
then acts as a relay file server: operations in the imported file
tree are executed on the remote server and the results returned. This
gives the appearance of exporting a name space from a remote machine
into a local file tree.
The options are:
-d
Log all 9P traffic to standard error.
-P patternfile
Restrict the set of exported files.
Patternfile
contains one regular expression per line,
to be matched against path names
relative to the current working directory
and starting with
/.
For a file to be exported, all lines with a prefix
+
must match and all those with prefix
-
must not match.
-R
Make the served name space read only.
-r root
Serve the name space rooted at
root.
-S service
Serve the result of mounting
service.
A separate mount is used for each
attach(5)
message,
to correctly handle servers in which each mount
corresponds to a different client
e.g.,(
rio(4)).
-s
equivalent to
-r
/;
kept for compatibility.
-m msize
Set the maximum message size that
exportfs
should offer to send (see
version(5));
this helps tunneled
9P connections to avoid unnecessary fragmentation.
Srvfs
invokes
exportprog
(default
/bin/exportfs)
to create a mountable file system from a name space
and posts it at
/srv/name,
which is created with mode
perm
(default 0600).
The name space is the directory tree rooted at
path.
The
-d,
-P,
and
-R
options, if present, are relayed to
exportprog.
EXAMPLES
To export the archive of one user for one month, except for secrets,
cd /n/dump
echo '+ ^/(2003(/10..(/usr(/glenda/?)?)?)?)?' > /tmp/pattern
echo '- \.(aes|pgp)$' >> /tmp/pattern
exportfs -P /tmp/pattern
Use
srvfs
to enable mounting of an FTP file system (see
ftpfs(4))
in several windows,
or to publish a
/proc
(see
proc(3))
with a broken process so a remote person may debug the program:
srvfs ftp /n/ftp
srvfs broke /mnt/term/proc
Use
srvfs
to obtain a copy of a service to be manipulated directly
by a user program like
nfsserver(8):
srvfs nfs.boot /srv/boot
aux/nfsserver -f /srv/nfs.boot
Use
srvfs
to spy on all accesses to a particular subtree:
srvfs -d spy /
tail -f /tmp/exportdb &
mount /srv/spy /n/spy
cd /n/spy; ls
SOURCE
/sys/src/cmd/exportfs
/sys/src/cmd/srvfs.c
SEE
rcpu(1)