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 con-
tains 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 con-
nections to avoid unnecessary fragmentation.
Page 1 Plan 9 (printed 11/17/25)
EXPORTFS(4) EXPORTFS(4)
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 ALSO
rcpu(1)
Page 2 Plan 9 (printed 11/17/25)