Provided by: sn_0.3.8-10.1build1_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)