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/18/24)

     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/18/24)