glenda.party
term% ls -F
term% pwd
$home/manuals/plan9_2nd/8/fs
term% cat index.txt
FS(8)                       System Manager's Manual                      FS(8)



NAME
       fs, exsort - file server maintenance

SYNOPSIS
       help [ command ...  ]
       arp subcommand
       cfs filesystem
       check [options]
       clri [file...]
       cpu [proc]
       create path uid gid perm [lad]
       cwcmd subcommand
       cycl subcommand
       date [[+-] seconds]
       duallow [uid]
       dump
       files
       flag flag [ channel ]
       halt
       newuser name [options]
       noattach
       passwd
       profile [01]
       remove [files...]
       route subcommand
       stat[acdejklw]
       stats [[-] flags...]
       sync
       time command
       trace [number]
       users [file]
       vcache
       version
       who [user...]
       wormcp [ funit tunit [nblock]]
       wormeject [ tunit ]
       wormingest [ tunit ]
       wormoffline [ tunit ]
       wormonline [ tunit ]

       disk/exsort [-w] [file]

DESCRIPTION
       Except  for exsort, these commands are available only on the console of
       an fs(4) file server.

       The console requires the machine's password to be supplied  before  ac‐
       cepting  commands.  Typing a control-D will cause the server to request
       the password again.

       Help prints a `usage string' for the named  commands,  by  default  all
       commands.   Also,  many  commands print menus of their options if given
       incorrect or incomplete parameters.

       Arp has two subcommands: print prints the contents of the ARP cache and
       flush flushes it.

       Cfs  changes  the  current file system, that is, the file tree to which
       commands (check, clri, create, newuser, profile, remove, and users) ap‐
       ply.  The initial filesystem is main.

       Check verifies the consistency of the current file system.  With no op‐
       tions it checks and reports the status.  It suspends service while run‐
       ning.  Options are:

       rdall  Read  every  block  in  the  file system (can take a long time).
              Normally, check will stop short of the actual contents of a file
              and just verify the block addresses.

       tag    Fix  bad  tags;  each  block  has a tag that acts as a backwards
              pointer for consistency checking.

       ream   Fix bad tags and also clear the contents of blocks that have bad
              tags.

       pfile  Print every file name.

       pdir   Print every directory name.

       free   Rebuild  the  list  of  free blocks with all blocks that are not
              referenced.  This option is only useful on  non-cache/WORM  file
              systems.

       bad    Each block address that is out of range or duplicate is cleared.
              Note that only the second and  subsequent  use  of  a  block  is
              cleared.   Often the problems in a file system are caused by one
              bad file that has a lot of garbage block addresses.  In  such  a
              case,  it  is wiser to use check to find the bad file (by number
              of diagnostic messages) and then use clri to clear the addresses
              in that file.  After that, check can be used to reclaim the free
              list.

       touch  Cause every directory and indirect block not on the current WORM
              disk  to be advanced to the current WORM on the next dump.  This
              is a discredited idea to try to keep operating on  the  knee  of
              the cache working set.  Buy more cache disk.

       Clri  clears  the internal directory entry and abandons storage associ‐
       ated with files.  It ignores the usual rules for sanity, such as check‐
       ing  against  removing  a non-empty directory.  A subsequent check free
       will place the abandoned storage in the free list.

       Cpu prints the CPU utilization and state of the processes in  the  file
       server.  If the name of a process type argument is given, then CPU uti‐
       lization for only those processes is printed.

       Create creates a file on the current file  system.   Uid  and  gid  are
       names  or  numbers from /adm/users.  Perm is the low 9 bits of the per‐
       mission mode of the file, in octal.  An optional final l, a, or d  cre‐
       ates a locked file, append-only file, or directory.

       Cwcmd controls the cached WORM file systems.  The subcommands are:

       mvstate state1 state2 [platter]
              States  are none, dirty, dump, dump1, error, read, and write.  A
              mvstate dump1 dump will cause I/O errors in the last dump to  be
              retried.   A  mvstate  dump1  write will cause I/O errors in the
              last dump to be retried in reallocated slots in the  next  dump.
              A  mvstate  read  none  will flush the cache associated with the
              WORM.  A mvstate dump write aborts the background process  dump‐
              ing  to  WORM; as a consequence it leaves holes in the dump file
              system.  Other uses are possible but arcane.  The optional plat‐
              ter limits affected blocks to those on that platter.

       prchain [start] [back]
              Print  the chain of superblocks for the directory containing the
              roots of the dumped file systems, starting at block number start
              (default 0) going forward (backwards if back is supplied).

       savecache [percent]
              Copy the block numbers, in native endian longwords, of blocks in
              the read state to the file /adm/cache for  use  by  disk/exsort.
              If  an argument is given, then that percent (most recently used)
              of each cache bucket is copied.

       loadcache [dskno]
              Read /adm/cache and for every block there on  WORM  disk  dskno,
              read  the  block  from  WORM to the cache.  If dskno is not sup‐
              plied, all blocks in /adm/cache are read.

       startdump [01]
              Suspend (0) or restart (1) the background dump process.

       touchsb
              Verify that the superblock on the WORM is readable, ignoring the
              cached copy.

       acct   Prints  how  many times each user has caused the system to allo‐
              cate new space on the WORM; the units are megabytes.

       clearacct
              Clears the accounting records for acct.

       Cycl controls the Cyclone fiber link to the main CPU server.   The  one
       subcommand is reboot, which reinitializes the Cyclone board and connec‐
       tion.

       Date prints the current date.  It  may  be  adjusted  using  +-seconds.
       With  no sign, it sets the date to the absolute number of seconds since
       00:00 Jan 1, 1970 GMT; with a sign it trims the current time.

       Duallow sets permissions such that the named user can read  and  search
       any  directories.   This is the permission necessary to do a du(1) com‐
       mand anywhere in the file system to discover disk usage.

       Dump starts a dump to WORM immediately for all file systems that have a
       WORM associated.  File service is suspended while the cache is scanned;
       service resumes when the copy to WORM starts.

       Files prints for every connection the number of allocated fids.

       Flag toggles flags, initially all off:

       arp    Report ARP activity.

       attach Report as connections are made to the file server.

       chat   (Very noisy.)  Print all 9P messages to and from the server.

       dkit   Report Datakit activity.

       route  Report received RIP packets.

       ro     Report I/O on the WORM device.

       If given a second numeric channel argument, as  reported  by  who,  the
       flag is altered only on that connection.

       Halt does a sync and halts the machine, returning to the boot ROM.

       Newuser  requires  a name argument.  With no options it adds user name,
       with group leader name, to /adm/users and makes the directory /usr/name
       owned by user and group name.  The options are

       ?      Print the entry for name.

       :      Add a group: add the name to /adm/users but don't create the di‐
              rectory.  By  convention,  groups  are  numbered  starting  from
              10000, users from 0.

       newname
              Rename existing user name to newname.

       =leader
              Change  the leader of name to leader.  If leader is missing, re‐
              move the existing leader.

       +member
              Add member to the member list of name.

       -member
              Remove existing member from the member list of name.

       After  a  successful  newuser  command  the  file   server   overwrites
       /adm/users to reflect the internal state of the user table.

       Noattach  disables attach(5) messages, in particular for system mainte‐
       nance.  Previously attached connections are unaffected.  Another  noat‐
       tach will enable normal behavior.

       Passwd sets the machine's password and writes it in non-volatile RAM.

       Profile  0 clears the profiling buffer and enables profiling; profile 1
       stops profiling and writes the data to /adm/kprofdata for use by  kprof
       (see  prof(1)).  If a number is not specified, the profiling state tog‐
       gles.

       Remove removes files.

       Route maintains an IP routing table.  The subcommands are:

       add dest gate [mask]
              Add a static route from IP address dest using gateway gate  with
              an optional subnet mask.

       delete dest
              Delete an entry from the routing table.

       print  Display the contents of the routing table.

       ripon  Enables the table to be filled from RIP packets.

       ripoff Disables the table from being updated by RIP packets.

       The  stat commands are connected with a service or device identified by
       the last character of the name: c, Cyclone fiber link; d, SCSI targets;
       e,  Eagle  Ethernet  controller; j, Jaguar SCSI/VME disk controller; k,
       Datakit; l, LANCE Ethernet controller; w, cached WORM.  The Statp  com‐
       mand prints statistics about processes; an optional argument identifies
       the process to be displayed; stata prints overall statistics about  the
       file  system.  The stats command takes an optional argument identifying
       the characters of stat commands to run.  The option is  remembered  and
       becomes  the  default for subsequent stats commands if it begins with a
       minus sign.

       Sync writes dirty blocks in memory to the magnetic disk cache.

       Time reports the time required to execute the command.

       Trace with no options prints  the  set  of  queue-locks  held  by  each
       process  in  the file server.  If things are quiescent, there should be
       no output.  With an argument number it prints a stack traceback of that
       process.

       Users  uses the contents of file (default /adm/users) to initialize the
       file server's internal representation of the users  structure.   Incor‐
       rectly  formatted  entries in file will be ignored.  If file is explic‐
       itly default, the system builds a minimal functional users table inter‐
       nally;  this  can  help  recover from disasters.  If the file cannot be
       read, you must run

              users default

       for the system to function.  The default table looks like this:

              -1:adm:adm:
              0:none:adm:
              1:tor:tor:
              10000:sys::
              10001:map:map:
              10002:doc::
              10003:upas:upas:
              10004:font::
              10005:bootes:bootes:

       Vcache displays statistics about the virtual buffer cache  on  machines
       with mapped caches such as the Sparcstation 2.

       Version  reports  when  the  file server was last compiled and last re‐
       booted.

       Who reports, one per line, the names of users  connected  to  the  file
       server  and  the status of their connections.  The first number printed
       on each line is the channel number of the  connection.   If  users  are
       given the output selects connections owned by those users.

       Wormcp  copies  from  WORM  disk funit to WORM disk tunit nblock native
       blocks (default the whole disk).  If tunit is written,  wormcp  guaran‐
       tees  the  written data is equal to the data on funit and stops if not.
       Wormcp does a binary search to find the lowest unwritten block on tunit
       at  which to start the copy.  With no arguments, wormcp stops a running
       copy.

       Wormeject moves the WORM disk in slot tunit to the output shelf.

       Wormingest moves the WORM disk from the input shelf to slot tunit.

       Wormoffline will take the designated WORM controller  out  of  service.
       This  is  done  in software by ignoring that logical unit when changing
       platters.  Note that the controller will be restored on a reboot.

       Wormonline will restore the designated unit to service.

       When the file server boots, it prints the message

              for config mode hit a key within 5 seconds

       If a character is typed within 5 seconds of the message appearing,  the
       server will enter config mode.  See fsconfig(8) for the commands avail‐
       able in config mode.  The system also enters config mode  if,  at  boot
       time,  the non-volatile RAM does not appear to contain a valid configu‐
       ration.

       Exsort is a regular command to be run on a CPU server, not on the  file
       server console.  It reads the named file (default /adm/cache) and sorts
       the cache disk block numbers contained therein.  It assumes the numbers
       are  4-byte integers and guesses the endianness by looking at the data.
       It then prints statistics about the cache.  With option  -w  it  writes
       the sorted data back to file.

SOURCE
       /sys/src/fs
       /sys/src/cmd/disk/exsort.c

SEE ALSO
       fs(4)
       Ken Thompson, ``The Plan 9 File Server''.



                                                                         FS(8)