Provided by: sn_0.3.8-12_amd64 bug

NAME

       sn - The sn news system.

DESCRIPTION

       If  you  think  of  a  news  spool  as  a black box, then sn is a bunch of programs to put
       articles in the box (snstore), to view articles in it (snntpd, sncat), remove old articles
       (snexpire,sncancel),  generate a list of what's in it (snscan, snprimedb), or display that
       list (sndumpdb).  In addition it can go find the articles to put in the box (snget).

       The sn system is designed for  small  sites,  spooling  a  few  dozen  to  a  few  hundred
       newsgroups.   It  is  not  meant for sites carrying a full news feed.  sn is suitable as a
       replacement for leafnode (ftp.troll.no, by Arnt Gulbrandsen).  It doesn't have  leafnode's
       intelligence  when  it comes to retrieving upstream articles, but is less demanding on the
       filesystem and takes up less disk space.

       sn supports local news groups.

       sn tries to create aliases for crossposts instead of storing the article multiple times.

       sn can compress articles to save disk space.  Compressing  and  uncompressing  take  place
       transparently.

       sn  doesn't  use configuration files.  Instead, you write small shell scripts to customize
       sn's behaviour.

REQUIREMENTS

       sn has been tested only against Linux  ver.  2.0.   It  makes  heavy  use  of  mmap(2)  in
       MAP_SHARED  and  MAP_WRITE  mode,  so  it  won't  work  on  pre-1.3.45  or so.  I (harold-
       sn@nb.com.sg) am interested in bug reports, comments, and suggestions.

NEWS SPOOL STRUCTURE

       The news spool is /var/spool/sn, which all sn programs need in order to run.  It  contains
       the   group   directories   in   news.group.name   format   rather  than  the  traditional
       news/group/name.  Each such directory contains article files, named serially  from  1,  2,
       etc.   Each  article file consists of up to 10 articles, which reduces the number of files
       and inodes required.  These article files are mmap(2)ed before use, and they are cached to
       reduce  search  time.  sn tries to keep the headers of these articles bunched together, to
       reduce the memory footprint.

       In addition to the article files, each  newsgroup  directory  also  contains  files  which
       control the behaviour of the sn system.  All control files have filenames beginning with a
       dot, and they all reside in the group directory in which they  are  to  have  effect.   In
       particular,  if  the  group  directory does not have a subdirectory .outgoing in it, it is
       considered a local news group.

BUGS

       When retrieving articles, there is a window of time  between  when  an  article  is  first
       marked  as  wanted  and  when it is committed to the news spool.  Within this window it is
       possible to have the same article committed by  a  separate  process.   This  defeats  the
       aliasing feature so you could end up with more than one copy of an identical article.

       The  ID  database  will  only  store  one instance of an articles {ID,group,serial} tuple.
       After the second copy is committed to the spool, snstore will try to commit it in  the  ID
       database,  and  will  fail.   So  it  is possible that after the article has been expired,
       another copy will still remain, but be inaccessible if requested by its ID.

       sn doesn't sync the ID database after each write, so  it  could  get  corrupted.   If  you
       suspect  it is corrupted, delete the files /var/spool/sn/.table, /var/spool/sn/.chain, and
       /var/spool/sn/.newsgroup, making sure snntpd and snget aren't running or scheduled  to  do
       so.  Then run
       cd /var/spool/sn; snscan -n * |snprimedb
       This will recreate the ID database.

PROGRAMS

       sncat  prints  out  the  specified  articles.  This is useful if you want to transport the
              spool to another system.

       sndumpdb
              dumps the ID database.  It is not normally used.

       snexpire
              expires articles in the spool.

       snfetch
              is the back end of the article fetcher.  You can  use  suck  (a  separate  package)
              instead.

       snget  is the front end of the article fetcher.

       snmail converts  a  normal  email  message  into a news article.  It can be used to turn a
              mailing list into a local newsgroup.

       snnewgroup
              is a script to create newsgroup directories.

       sndelgroup
              is a script to delete newsgroup directories and flush the ID database of references
              to those articles.

       snntpd is the news server (an nnrpd).

       snprimedb
              feeds the ID database from formatted standard input.  This database is what permits
              articles to be specified  by  their  ID.   This  program  is  not  used  in  normal
              operation.

       snscan scans  the  specified  articles  and outputs a line consisting of the article's ID,
              newsgroup, and serial number within the newsgroup.  This  output  is  suitable  for
              feeding to snprimedb.  This program is not used in normal operation.

       snsend takes  articles  on  standard  input  and distributes them according to the type of
              newsgroup.

       snstore
              Like snsend, but considers all newsgroups as local, so stores all articles  locally
              only.

       sncancel
              cancels articles, so they are no longer available locally.

CONVENTIONS

       Exit codes
              All  sn  programs exit 0 on success, 1 on invocation error; 2 on system error; 3 on
              format or protocol error.  Other exit codes are possible.

       Options
              sn programs take -d to enable verbose messages (may be  repeated),  and  -V,  which
              displays  the  version  and exits.  Where a network timeout is appropriate, this is
              specified with -t timeout, in seconds.  -P indicates the pid should be included  in
              any status output.  Other options are possible.

       Environment
              sn  programs  will take the contents of the SNROOT environment variable as the news
              spool rather than /var/spool/sn.  If a program will need to run another, it appends
              /usr/sbin to its PATH variable if /usr/sbin is not already present.

SEE ALSO

       sncat(8),   sndumpdb(8),  snexpire(8),  snfetch(8),  snget(8),  snmail(8),  snnewgroup(8),
       sndelgroup(8), snntpd(8), snprimedb(8), snscan(8), snstore(8), snsend(8)