suck man page on SuSE

Man page or keyword search:  
man Server   14857 pages
apropos Keyword Search (all sections)
Output format
SuSE logo
[printable version]

SUCK(1)								       SUCK(1)

NAME
       suck  - Pull a small newsfeed from an NNTP server, avoiding the NEWNEWS
       command.

SYNOPSIS
       suck [ hostname ] [ @filename ] [ -V ] [ -K ] [ -L[SL] ] [ filename ] [
       -H  ]  [	 -HF  filename	]  [  -d[tmd] dirname ] [ -s | -S filename ] [
       -e | -E filename ] [ -a ] [ -m ] [ -b[irlf] batchfile ] [ -r filesize ]
       [  -p  extension	 ]  [  -U  userid ] [ -P password ] [ -c ] [ -M ] [ -N
       port_number  ]  [  -W  pause_time  pause_nr_msgs	 ]  [  -w   pause_time
       pause_nr_msgs  ] [ -l phrase_file ] [ -D ] [ -R ] [ -q ] [ -C count ] [
       -k ] [ -A ] [ -AL activefile ] [ -hl localhost ] [ -bp ] [ -T timeout ]
       [  -n  ]	 [  -u ] [ -z ] [ -x ] [ -B ] [ -O ] [ -G ] [ -X ] [ -f ] [ -y
       post_filter ] [ -F ] [ -g ] [ -i number_to_read ] [ -Z ] [ -rc ] [  -lr
       ] [ -sg ] [ -ssl ] [ -SSL ]

       Options valid in all modes

       @filename

       This option tells suck to read other options from a file in addition to
       the commandline.

       -a

       This option forces suck to always batch	up  any	 downloaded  articles,
       even  if	 suck  aborts  for any reason.	Without this option, suck will
       only batch up articles if it finishes successfully or is cancelled by a
       signal (see below).

       -A

       This  option  tells  suck to scan the localhost (specified with the -hl
       option) and use its active file to build	 and  update  the  sucknewsrc.
       If you add a group to your local server, suck will add it to sucknewsrc
       and download articles.  Or, if you  delete  a  group  from  your	 local
       server,	it will be deleted from sucknewsrc.  If posting is not allowed
       to a particular group, then the line in sucknewsrc  is  just  commented
       out.   With this option, you should never have to edit your sucknewsrc.
       In case you have newsgroups (like control and junk) that you don't want
       downloaded, you can put these newsgroups in a file "active-ignore", one
       per line, and suck will ignore  these  newsgroups  when	it  scans  the
       localhost.   If	your  system  supports	regex(),  you  may use regular
       expressions in the active-ignore file  to  skip	multiple  groups,  eg:
       fred.*.	 If  you  use the -p (postfix) option, suck will check for the
       existence of an active-ignore file with the postfix.  If	 that  doesn't
       exist,  then  suck will check for the existence of the file without the
       postfix.

       NOTE: If you use regular expressions, suck will silently add a  "^"  to
       the beginning of the group name, and a "$" to the end of the group name
       if they aren't already present, so that if you have "comp.os.linux", it
       won't  match  "comp.os.linux.answers"  or  if  you  have	 "alt.test" it
       doesn't match "comp.alt.test".

       -AL activefile

       This option is identical to the -A option, except it reads  the	active
       file  from  the	local  file  specified	instead of reading it from the
       localhost.  All the caveats from the -A option apply to this option  as
       well.   If  both options are used on the command line, suck first tries
       to use the -A option, then if that fails it uses this option.

       -B

       This option tells suck to attempt to  batch  up	any  articles  in  its
       directory  BEFORE starting to download messages.	 This can be useful if
       you have a problem with the previous download.  This option  will  only
       work  if you specify a batch option (see below).	  If there are no mes‐
       sages to batch up, some of the batch options may produce	 warning  mes‐
       sages.	They may be safely ignored.  Also, if the batch files exist at
       the end of the run, in inn-batch mode, it will  be  overwritten,	 since
       the  new	 batch	file will contain all messages.	 In rnews mode, if the
       batch file exists, it will abort and not batch up any messages.

       -c

       If this option is specified, suck will clean  up	 after	itself.	  This
       includes:
	      1. Moving sucknewsrc to sucknewsrc.old
	      2. Moving suck.newrc to sucknewsrc
	      3. rm suck.sorted and suckothermsgs.

       -C count

       This option tells suck to drop the connection and reopen it every count
       number of articles.  This is designed to battle INN's LIKE_PULLERS=DONT
       option,	that  some folks compile in. With LIKE_PULLERS=DONT, after 100
       messages INN will pause between every  message,	dramatically  reducing
       your download speed. I don't recommend the use of this, but if you have
       no other choice....

       -dd dirname

       -dm dirname

       -dt dirname

       Specify the location of the various files used by suck.

       -dd dirname = directory of data files used by  suck  (sucknewsrc	 suck‐
       killfile suckothermsgs active-ignore sucknodownload)

       -dm  dirname  =	directory for storage of articles created in Multifile
       mode or batch mode.  DO NOT make this the same as the directories  used
       for  the	 -dt  or  -d  options, or you will lose all your configuration
       files.

       -dt dirname = directory of temp	files  created	by  suck  (suck.newrc,
       suck.sort, suck.restart, suck.killlog, suck.post).

       -D

       This   option   tells   suck  to	 log  various  debugging  messages  to
       "debug.suck", primarily for use by the maintainer.

       -e | -E filename

       These options will send	all  error  messages  (normally	 displayed  on
       stderr),	 to  an alternate file.	 The lower case version, -e, will send
       the error messages to the compiled-in default defined in suck_config.h.
       The  default  is suck.errlog.  The upper case version, -E, requires the
       filename parameter.  All error messages will then be sent to this file.

       -f

       This option tells suck to reconnect after deduping,  and	 before	 down‐
       loading the articles.  This is in case long dedupe times cause timeouts
       on the remote end.

       -F

       This option tells suck to reconnect  after  reading  the	 local	active
       file,  and  before downloading the Msg-IDs.  This is in case of a large
       active file, which causes timeouts on the remote end.

       -g

       This option causes suck to only download the headers  of	 any  selected
       articles.   As  a  result of this, any batching of articles is skipped.
       This option does work with killfiles, however, killfile options such as
       BODYSIZE>  will be ignored, since the body of the article will never be
       downloaded.

       -G

       This option causes suck to display the message  count  and  BPS	status
       lines in a slightly different format, more suitable for use by a filter
       program (such as a GUI).

       -H

       This option will cause suck to bypass the history check.

       -HF history_file_name

       This option tells suck the location of the history file.	  The  default
       is at /var/lib/news/history.

       -hl localhost

       This option specifies the localhost name.  This option is required with
       both the -A and the -bp option.

       -i number_to_read

       This option tells suck the number of articles to download  if  you  are
       using  the -A or -AL option, and a new group is added.	The default is
       defined in  suck_config.h  (ACTIVE_DEFAULT_LASTREAD,  currently	-100).
       NOTE:  This must be a negative number (eg -100, -50), or 0, to download
       all articles currently available in the group.

       -k

       This option tells suck to NOT attach the postfix from the -p option  to
       the  names  of  the  killfiles,	both the master killfile and any group
       files.  This allows you to maintain one set of killfiles	 for  multiple
       servers.

       -K

       This option will cause suck to bypass checking the killfile(s).

       -l phrase_file

       This  option tells suck to load in an alternate phrase file, instead of
       using the built-in messages.   This  allows  you	 to  have  suck	 print
       phrases	in another language, or to allow you to customize the messages
       without re-building suck.  See below.

       -lr

       This option, is used in conjunction with the highest article option  in
       the  sucknewsrc, to download the oldest articles, vice the newest arti‐
       cles. See that section for more details.

       -L

       This option tells suck to NOT log killed articles to suck.killlog.

       -LF filename

       This option allows you to override the built-in default of  "suck.kill‐
       log" for the file which contains the log entries for killed articles.

       -LL

       This option tells suck to create long log entries for each killed arti‐
       cle.  The long entry contains the short log entry and  the  header  for
       the killed message.

       -LS

       This  option  tells  suck  to  create short log entries for each killed
       article.	 The short entry contains which group and  which  pattern  was
       matched, as well as the MsgID of the killed article.

       -M

       This  option tells suck to send the "mode reader" command to the remote
       server.	If you get an invalid command message  immediately  after  the
       welcome announcement, then try this option.

       -n

       This  option  tells  suck  to  use the article number vice the MsgId to
       retrieve the articles.  This option is supposedly  less	harsh  on  the
       remote  server.	 It  can  also eliminate problems if your ISP ages off
       articles quickly and you frequently get	"article  not  found"  errors.
       Also,  if  your	ISP  uses DNEWS, you might need this option so that it
       knows you're reading articles in a group.

       -N port_number

       This option tells suck to use an alternate NNRP port number  when  con‐
       necting to the host, instead of the default, 119.

       -O

       This option tells suck to skip the first article upon restart.  This is
       used whenever there is a problem with an article on the remote  server.
       For  some  reasons,  some NNTP servers, when they have a problem with a
       particular article, they time out.  Yet, when you restart, you're  back
       on the same article, and you time out again.  This option tells suck to
       skip the first article upon restart, so that you can get	 the  rest  of
       the articles.

       -p extension

       This extension is added to all files so that you can have multiple site
       feeds.  For example, if you specify -p  .dummy,	then  suck  looks  for
       sucknewsrc.dummy,  suckkillfile.dummy,  etc, and creates its temp files
       with the same extension.	 This will allow you to	 keep  multiple	 suck‐
       newsrc files, one for each site.

       -q

       This  option  tells  suck to not display the BPS and article count mes‐
       sages during download.  Handy when running  suck	 unattended,  such  as
       from a crontab.

       -R

       This  option tells suck to skip a rescan of the remote newserver upon a
       restart.	 The default is to rescan the newserver for any	 new  articles
       whenever suck runs, including restarts.

       -rc

       This  option  tells  suck to change its behavior when the remote server
       resets its article counters.   The default behavior  is	to  reset  the
       lastread	 in sucknewsrc to the current high article counter.  With this
       option, suck resets the lastread in sucknewsrc to the current low arti‐
       cle  counter,  causing  it to suck all articles in the group, and using
       the historydb routines to dedupe existing articles.

       -s | -S filename

       These options will send all status messages (normally displayed on std‐
       out),  to an alternate file.  The lower case version, -s, will send the
       status messages to the compiled-in default  defined  in	suck_config.h.
       The default is /dev/null, so no status messages will be displayed.  The
       upper case version, -S, requires the filename  parameter.   All	status
       messages will then be sent to this file.

       -sg

       This option tells suck to add the name of the current group being down‐
       loaded, if known, to the BPS display.   Typically the  only  time  suck
       doesn't	know  the  group  name	is if an article is downloaded via the
       suckothermsgs file.

       -ssl

       This option tells suck to use SSL to talk to the remote server, if suck
       was compiled with SSL support.

       -SSL

       This  option tells suck to use SSL to talk to the local server, if suck
       was compiled with SSL support.

       -T timeout

       This option overrides the compiled-in TIMEOUT value. This is  how  long
       suck  waits  for data from the remote host before timing out and abort‐
       ing.  The timeout value is in seconds.

       -u

       This option tells suck to send the AUTHINFO  USER  command  immediately
       upon  connect  to the remote server, rather than wait for a request for
       authorization.  You must supply the -U and -P options when you use this
       option.

       -U userid

       -P password

       These  two  options let you specify a userid and password, if your NNTP
       server requires them.

       -V

       This option will cause suck to print out the version  number  and  then
       exit.

       -w pause_timer pause_nr_msgs

       This  option  allows  you to slow down suck while pulling articles.  If
       you send suck a predefined signal (default SIGUSR1, see suck_config.h),
       suck  will  swap	 the  default  pause  options  (if specified by the -W
       option), with the values from this option.  For example, you  run  suck
       with  -w	 2 2, and you send suck a SIGUSR1 (using kill), suck will then
       pause 2 seconds between every other message,  allowing  the  server  to
       "catch  its  breath."  If you send suck another SIGUSR1, then suck will
       put back the default pause options.  If no pause options were specified
       on  the	command	 line  (you  omitted -W), then suck will return to the
       default full speed pull.

       -W pause_time pause_nr_msgs

       This option tells suck to pause between the download of articles.   You
       need  to specify how long to pause (in seconds), and how often to pause
       (every X nr of articles). Ex: -W 10 100 would cause suck to  pause  for
       10  seconds  every  100 articles.  Why would you want to do this?  Suck
       can cause heavy loads on a remote server, and  this  pause  allows  the
       server to "catch its breath."

       -x

       This  option  tells  suck to not check the Message-IDs for the ending >
       character.  This option is for brain dead NNTP  servers	that  truncate
       the XHDR information at 72 characters.

       -X

       This option tells suck to bypass the XOVER killfiles.

       -y post_filter

       This option is only valid when using any of batch modes.	 It allows you
       to edit any or all of the articles downloaded  before  posting  to  the
       local host.   See below for more details.

       -z

       This  option tells suck to bypass the normal deduping process.  This is
       primarily for slow machines where the deduping takes  longer  than  the
       download of messages would.  Not recommended.

       -Z

       This  option  tells suck to use the XOVER command vice the XHDR command
       to retrieve the information needed to download articles.	 Use  this  if
       your remote news server doesn't support the XHDR command.

LONG OPTION EQUIVALENTS
	      -a  --always_batch
	      -bi --batch-inn
	      -br --batch_rnews
	      -bl --batch_lmove
	      -bf --batch_innfeed
	      -bp --batch_post
	      -c  --cleanup
	      -dt --dir_temp
	      -dd --dir_data
	      -dm --dir_msgs
	      -e  --def_error_log
	      -f  --reconnect_dedupe
	      -g  --header_only
	      -h  --host
	      -hl --localhost
	      -k  --kill_no_postfix
	      -l  --language_file
	      -lr --low_read
	      -m  --multifile
	      -n  --number_mode
	      -p  --postfix
	      -q  --quiet
	      -r  --rnews_size
	      -rc --resetcounter
	      -s  --def_status_log
	      -sg --show_group
	      -ssl --use_ssl
	      -w  --wait_signal
	      -x  --no_chk_msgid
	      -y  --post_filter
	      -z  --no_dedupe
	      -A  --active
	      -AL --read_active
	      -B   --pre-batch
	      -C  --reconnect
	      -D  --debug
	      -E  --error_log
	      -G  --use_gui
	      -H  --no_history
	      -HF --history_file
	      -K  --killfile
	      -L  --kill_log_none
	      -LS --kill_log_short
	      -LL --kill_log_long
	      -M  --mode_reader
	      -N  --portnr
	      -O --skip_on_restart
	      -P  --password
	      -R  --no_rescan
	      -S  --status_log
	      -SSL --local_use_ssl
		     -T	 --timeout
		     -U	 --userid
		     -V	 --version
		     -W	 --wait
		     -X	 --no_xover
		     -Z --use_xover

DESCRIPTION
MODE 1 - stdout mode
	      %suck
	      %suck myhost.com

       Suck  grabs  news from an NNTP server and sends the articles to stdout.
       Suck accepts as argument the name of an NNTP server  or	if  you	 don't
       give  an argument it will take the environment variable NNTPSERVER. You
       can redirect the articles to a file or compress them on	the  fly  like
       "suck  server.domain  |	gzip -9 > output.gz".  Now it's up to you what
       you do with the articles.  Maybe you have the output  already  on  your
       local  machine because you used a slip line or you still have to trans‐
       fer the output to your local machine.

MODE 2 - Multifile mode
	      %suck -m
	      %suck myhost.com -m

       Suck grabs news from an NNTP server and stores each article in a	 sepa‐
       rate file.  They are stored in the directory specified in suck_config.h
       or by the -dm command line option.

MODE 3 - Batch mode
	      %suck myhost.com -b[irlf] batchfile
	      or %suck myhost.com -bp -hl localhost
	      or %suck myhost.com -bP NR -hl localhost
	      %suck myhost.com -b[irlf] batchfile

       Suck will grab news articles from an NNTP server and  store  them  into
       files,  one  for	 each  article	(Multifile mode).  The location of the
       files is based on the defines in suck_config.h  and  the	 command  line
       -dm.  Once suck is done downloading the articles, it will build a batch
       file which can be processed by either innxmit or rnews, or it will call
       lmove to put the files directly into the news/group/number format.

       -bi  - build batch file for innxmit.  The articles are left intact, and
       a batchfile is built with a one-up listing of the  full	path  of  each
       article.	 Then innxmit can be called:

	      %innxmit localhost batchfile

       -bl  -  suck will call lmove to put the articles into news/group/number
       format.	You must provide the name of the  configuration	 file  on  the
       command line.  The following arguments from suck are passed to lmove:

	      The  configuration  file	name (the batchfile name provided with
	      this option)
	      The directory specified for articles (-dm or built-in default).
	      The errorlog to log errors to (-e or -E),	 if  provided  on  the
	      command line.
	      The phrases file (-l), if provided on the command line.
	      The Debug option, if provided on the command line.

       -br  -  build  batch  file  for	rnews.	 The articles are concatenated
       together, with the #!rnews size article separator.  This can the be fed
       to rnews:

	      %rnews -S localhost batchfile

       -r  filesize   specify  maximum batch file size for rnews.  This option
       allows you to specify the maximum size of a batch file  to  be  fed  to
       rnews.  When this limit is reached, a new batch file is created AFTER I
       finish writing the current article to the old batch file.   The	second
       and  successive	batch files get a 1 up sequence number attached to the
       file name specified with the -br.  Note that since  I  have  to	finish
       writing	out the current article after reaching the limit, the max file
       size is only approximate.

       -bf - build a batch file for  innfeed.	This  batchfile	 contains  the
       MsgID  and full path of each article.  The main difference between this
       and the innxmit option is that the innfeed file is built as  the	 arti‐
       cles  are downloaded, so that innfeed can be posting the articles, even
       while more articles are downloaded.

       -bp - This option tells suck to build a batch file, and post the	 arti‐
       cles  in	 that  batchfile  to  the  localhost  (specified  with the -hl
       option).	 This option uses the IHAVE command  to	 post  all  downloaded
       articles to the local host.  The batch file is called suck.post, and is
       put in the temporary directory (-dt).  It is deleted  upon  completion,
       as  are the successfully posted articles.  If the article is not wanted
       by the server (usually because it already exists on the server,	or  it
       is  too	old), the article is also deleted.  If other errors occur, the
       article is NOT deleted.	With the following command line, you can down‐
       load and post articles without worrying if you are using INND or CNEWS.

	      %suck news.server.com -bp -hl localhost -A -c

       -bP  NR - This option works identically to -bp above, except instead of
       waiting until all articles are downloaded, it will  post	 them  to  the
       local server after downloading NR of articles.

	      %suck news.server.com -bP 100 -hl localhost -A -c

SUCK ARGUMENT FILE
       If you specify @filename on the command line, suck will read from file‐
       name and parse it for any arguments that you wish to pass to suck.  You
       specify	the same arguments in this file as you do on the command line.
       The arguments can be on one line, or spread out	among  more  than  one
       line.   You  may	 also use comments.  Comments begin with '#' and go to
       the end of a line.  All command line arguments  override	 arguments  in
       the file.

	      # Sample Argument file
	      -bi batch # batch file option
	      -M   # use mode reader option

SUCKNEWSRC
       Suck  looks  for	 a  file  sucknewsrc to see what articles you want and
       which you already received. The format of sucknewsrc is very simple. It
       consists	 of  one  line	for  each newsgroup.  The line contains two or
       three fields.

       The first field is the name of the group.

       The second field is the highest article number that was	in  the	 group
       when that group was last downloaded.

       The third field, which is optional, limits the number of articles which
       can be downloaded at any given time.  If there are more	articles  than
       this  number, only the newest are downloaded.  If the third field is 0,
       then no new messages are downloaded.  If the command line option -lr is
       specified,  instead of downloading the newest articles, suck will down‐
       load the oldest articles instead.

       The fields are separated by a space.

	      comp.os.linux.announce 1 [ 100 ]

       When suck is finished, it creates the file  suck.newrc  which  contains
       the new sucknewsrc with the updated article numbers.

       To  add	a  new	newsgroup, just stick it in sucknewsrc, with a highest
       article number of -1 (or any number less than 0).  Suck will  then  get
       the  newest  X  number  of messages for that newsgroup.	For example, a
       -100 would cause suck to download the  newest  100  articles  for  that
       newsgroup.

       To  tell	 suck to skip a newsgroup, put a # as the first character of a
       line.

SUCKKILLFILE and SUCKXOVER
       There are two types of killfiles supported in suck.  The first, via the
       file  suckkillfile,  kills  articles based on information in the actual
       article header or body.	 The second, via  the  file  suckxover,	 kills
       articles based on the information retreived via the NNTP command XOVER.
       They are implemented in two fundamentally different  ways.   The	 suck‐
       killfile killing is done as the articles are downloaded, one at a time.
       The XOVER killing is done while suck is getting the list of articles to
       download,  and  before  a  single  article  is downloaded.  You may use
       either, none or both type of killfiles.

SUCKKILLFILE and GROUP KEEP/KILLFILES
       If suckkillfile exists,	the headers of	all articles will  be  scanned
       and  the	 article  downloaded  or  not,	based on the parameters in the
       files.  If no logging option is specified (see the -L  options  above),
       then the long logging option is used.

       Comments	 lines are allowed in the killfiles.  A comment line has a "#"
       in the first position.  Everything on a comment line is ignored.

       Here's how the whole  keep/delete  package  works.   All	 articles  are
       checked	against the master kill file (suckkillfile).  If an article is
       not killed by the master kill file, then its group line is parsed.   If
       a  group	 file exists for one of the groups then the article is checked
       against that group file.	 If it matches a keep file, then it  is	 kept,
       otherwise  it  is  flagged  for deletion.  If it matches a delete file,
       then it is flagged for deletion, otherwise it is kept.	This  is  done
       for every group on the group line.

       NOTES:  With the exception of the USE_EXTENDED_REGEX parameter, none of
       these parameters are passed from the master killfile to the  individual
       group  file.   Each  killfile  is separate and independant.  Also, each
       search is case-insensitive unless specifically  specified  by  starting
       the  search  string with the QUOTE character (see below).  However, the
       parameter part of the search expression (the LOWLINE=, HILINE= part) is
       case sensitive.

PARAMETERS
	      LOWLINES=#######
	      HILINES=#######
	      NRGRPS=####
	      NRXREF=####
	      QUOTE=c
	      NON_REGEX=c
	      GROUP=keep  groupname  filename  OR GROUP=delete groupname file‐
	      name
	      PROGRAM=pathname
	      PERL=pathname
	      TIEBREAKER_DELETE
	      GROUP_OVERRIDE_MASTER
	      USE_EXTENDED_REGEX
	      XOVER_LOG_LONG
	      HEADER:
	      Any Valid Header Line:
	      BODY:
	      BODYSIZE>
	      BODYSIZE<

       All parameters are valid in both the master kill	 file  and  the	 group
       files,  with  the exception of GROUP, PROGRAM, PERL, TIEBREAKER_DELETE,
       and GROUP_OVERRIDE_MASTER.  These are only valid	 in  the  master  kill
       file.

KILL/KEEP Files Parameters
       HILINES= Match any article longer than the number of lines specified.

       LOWLINES= Match any article shorter than the number of lines specified.

       NRGRPS= This line will match any article which has more groups than the
       number specified on the Newsgroups: line.  Typically this is used in  a
       killfile	 to  prevent spammed articles.	(A spammed article is one that
       is posted to many many groups, such as those  get-rich  quick  schemes,
       etc.)

       NRXREF= This line will match any article that has more groups than than
       the number specified on the Xref: line.	This is another spamm stopper.
       WARNING:	 the Xref: line is not as accurate as the Newsgroups: line, as
       it only contains groups known to the news server.   This option is most
       useful  in  an xover killfile, as in Xoverviews don't typically provide
       the Newsgroups: line, but do provide the Xref: line.

       HEADER: Any Valid Header Line: Suck  allows  you	 to  scan  any	single
       header line for a particular pattern/string, or you may scan the entire
       article header.	To scan an individual line, just specify it, for exam‐
       ple to scan the From line for boby@pixi.com, you would put

	      From:boby@pixi.com

       Note  that  the	header	line  EXACTLY matches what is contained in the
       article.	 To scan the Followup-To: line, simply put To search the  same
       header line for multiple search items, then each search item must be on
       a separate line, eg:
	      From:boby@xxx
	      From:nerd@yyy
	      Subject:suck
	      Subject:help
       The parameter HEADER: is a special case of the above.  If you  use  the
       HEADER:	parameter,  then  the  entire header is searched for the item.
       You are allowed multiple HEADER: lines in each killfile.

       When suck searches for the pattern, it only searches for	 what  follows
       the  :,	and  spaces  following	the : are significant.	With the above
       example "Subject:suck", we will search the Subject header line for  the
       string  "suck".	 If  the  example had read "Subject: suck", suck would
       have searched for the string " suck".  Note the extra space.

       If your system has regex() routines on it, then the items searched  for
       can  be	POSIX regular expressions, instead of just strings.  Note that
       the QUOTE= option is still applied, even to regular expressions.

       BODY: This parameter allows you to search the body of  an  article  for
       text.   Again,  if your system has regex(), you can use regular expres‐
       sions, and the QUOTE= option is also applied.  You are allowed multiple
       BODY:  lines  in	 each killfile.	 WARNING:  Certain regex combinations,
       especially with .* at the beginning, (eg	 BODY:.*jpg),  in  combination
       with large articles, can cause the regex code to eat massive amounts of
       CPU, and suck will seem like it is doing nothing.

       BODYSIZE> This parameter will match an article if the size of its  body
       (not including the header) is greater than this parameter.  The size is
       specified in bytes.

       BODYSIZE< This parameter will match an article if the size of its body,
       is less than this parameter.  The size is specified in bytes.

       QUOTE=  This item specifies the character that defines a quoted string.
       The default for this is a ".  If an item starts with the QUOTE  charac‐
       ter,  then  the	item  is checked as-is (case significant).  If an item
       does not start with the QUOTE character, then the item is checked  with
       out regard to case.

       NON_REGEX=  This items specifies the character that defines a non-regex
       string.	The default for this is a %.   If  an  item  starts  with  the
       NON_REGEX character, then the item is never checked for regular expres‐
       sions.  If the item doesn't start with the QUOTE character,  then  suck
       tries  to  determine  if	 it is a regular expression, and if it is, use
       regex() on it.  This item is so that you can tell suck to treat strings
       like "$$$$ MONEY $$$$" as non-regex items.    IF YOU USE BOTH QUOTE and
       NON_REGEX characters on a string, the NON_REGEX character  MUST	appear
       first.

       GROUP= This line allows you to specify either keep or delete parameters
       on a group by group basis.  There are three parts to this  line.	  Each
       part  of	 this  line must be separated by exactly one space.  The first
       part is either "keep" or "delete".  If it is keep, then	only  articles
       in  that	 group	which match the parameters in the group file are down‐
       loaded.	If it is delete, articles in that group which match the param‐
       eters  are not downloaded.  The second part, the group name is the full
       group name for articles to check against the group  file.    The	 group
       name  may contain an * as the last character, to match multiple groups,
       eg:     "comp.os.linux.*"     would    match    comp.os.linux.announce,
       comp.os.linux.answers,  etc..   The third part specifies the group file
       which contains the parameters to check  the  articles  against.	 Note,
       that  if	 you specified a postfix with the -p option, then this postfix
       is attached to the name of the file when suck looks for it, UNLESS  you
       use the -k option above.

       GROUP_OVERRIDE_MASTER  This allows you to override the default behavior
       of the master kill file.	 If this option is in the  master  kill	 file,
       then  even  if  an  article  is flagged for deletion by the master kill
       file, it is checked against the group files.  If the group  files  says
       to not delete it, then the article is kept.

       TIEBREAKER_DELETE  This option allows you to override the built-in tie-
       breaker default.	 The potential exists for a message to be  flagged  by
       one group file as kept, and another group file as killed.  The built-in
       default is to then keep the message.  The TIEBREAKER_DELETE option will
       override that, and caused the article to be deleted.

       USE_EXTENDED_REGEX  This	 option	 tells	suck  to  use extended regular
       expressions vice standard regular expressions.  It may used in the mas‐
       ter killfile, in which case it applies to all killfiles, or in an indi‐
       vidual killfile, where it only applies to the parameters that follow it
       in the killfile.

       XOVER_LOG_LONG  This option tells suck to format the killfile generated
       by from an Xover killfile so that it looks like an article header.  The
       normal output is to just print the Xover line from theserver.

       PROGRAM=	 This  line  allows  suck to call an external program to check
       each article.  You may specify any arguments in addition to the program
       name  on	 this  line.   If this line is in your suckkillfile, all other
       lines are ignored.  Instead, the headers are  passed  to	 the  external
       program, and the external program determines whether or not to download
       the article.  Here's how it works.  Suck will fork your	program,  with
       stdin  and  stdout redirected.  Suck will feed the headers to your pro‐
       gram thru stdin, and expect a reply back thru stdout.  Here's the  data
       flow for each article:

	      1.  suck	will  write a 8 byte long string, which represents the
	      length of the header record on stdin of  the  external  program.
	      Then  length is in ascii, is left-aligned, and ends in a newline
	      (example: "1234	\n").
	      2. suck will then write the header on stdin of the external pro‐
	      gram.
	      3.  suck	will  wait  for a 2 character response code on stdout.
	      This response code is either "0\n" or "1\n" (NOT BINARY ZERO  OR
	      ONE,  ASCII ZERO OR ONE).	 If the return code is zero, suck will
	      download the article, if it is one, suck won't.
	      4. When there are no more articles, the length written down (for
	      step  1)	will be zero (again in ascii "0	      \n").  Suck will
	      then wait for the external program to exit before continuing on.
	      The  external  program  can do any clean up it needs, then exit.
	      Note: suck will not continue processing until the external  pro‐
	      gram exits.

       PERL=  This  line  allows  suck to call a perl subroutine to check each
       article.	 In order to use this option,  you  must  edit	the  Makefile,
       specifically the PERL* options.	If the PERL= line is in your suckkill‐
       file, all other lines are ignored.  Instead, the header is sent to your
       perl subroutine, and your subroutine determines if the article is down‐
       loaded or not.  The parameter on the PERL= line specifies the file name
       of the perl routine eg:

	      PERL=perl_kill.pl

       See  the sample/perl_kill.pl for a sample perl subroutine.  There are a
       couple of key points in this sample.  The "package  Embed::Persistant;"
       must  be in the perl file.  This is so that any variable names you cre‐
       ate will not conflict with variable names in suck.   In	addition,  the
       subroutine  you	define	must  be  "perl_kill",	unless	you change the
       PERL_PACKAGE_SUB define in suck_config.h.  Also, your  subroutine  must
       return exactly one value, an integer, either 0 or 1.  If the subroutine
       returns 0, then the article is downloaded, otherwise,  the  article  is
       not downloaded.

       NOTES:  The  perl  file	is only compiled once, before any articles are
       downloaded.  This is to prevent lengthy delays between  articles	 while
       the  perl  routine  is  re-compiled.   Also, you must use Perl 5.003 or
       newer.  In addition, you are advised to run 'perl  -wc  filter'	BEFORE
       using  your filter, in order to check for syntax errors and avoid prob‐
       lems.

SUCKXOVER
       If the file suckxover exists, then suck uses the XOVER command  to  get
       information  on	the articles and decide whether or not to download the
       article.	 Xover files use the same syntax as  suckkillfiles,  but  sup‐
       ports a subset of the commands.

       The following killfile commands are not supported in suckxover files:
	      NRGROUPS:
	      HEADER:
	      BODY:
	      TIEBREAKER_DELETE:

       Only the following header lines will be checked:
	      Subject:
	      From:
	      Message-ID:
	      References:

       The behaviour of the size commands ( BODYSIZE>, BODYSIZE<, HILINES, and
       LOWLINES ) specify the total size of the article (not just the body) in
       bytes or lines, respectively.

       All  other  parameters  are  allowed.   However,	 if you use an invalid
       parameter, it is silently ignored.

SUCKXOVER and PROGRAM= or PERL= parameters
       These parameters are supported in a suckxover file, however  they  work
       slightly	 differently than described above.  The key difference is that
       prior to sending each individual xoverview line to your	program,  suck
       will  send  you	the  overview.fmt  listing  that it retrieves from the
       server.	This overview.fmt is  a	 tab-separated	line,  describing  the
       fields in each overview.fmt line.

       For the PROGRAM= parameter, suck will first send your program an 8 byte
       long string, which is the length of the overview.fmt.  This  length  is
       formatted  as  the  lengths  above (see nr1 under PROGRAM=).  Suck will
       then send the overview.fmt.  After  that,  the  flow  is	 as  described
       above.  See sample/killxover_child.c for an example.

       For  the	 PERL= parameter, Your program must have two subroutines.  The
       first is perl_overview, which will recieve the  overview.fmt,  and  not
       return  anything.   The	second	subroutine  is	perl_xover, which will
       recieve the xoverview line, and return 0 or  1,	as  described  in  the
       PERL= above.  See sample/perl_xover.pl for an example.

SUCKOTHERMSGS
       If  suckothermsgs  exists,  it  must  contain lines formatted in one of
       three ways.  The first way is a line containing a Message-ID, with  the
       <> included, eg:

		   <12345@somehost.com>

       This will cause the article with that Message-ID to be retrieved.

       The  second  way	 is  to	 put a group name and article number on a line
       starting with an !, eg:
		   !comp.os.linux.announce 1

       This will cause that specific article to be downloaded.

       You can also get a group of articles from a group by using the  follow‐
       ing syntax:
		   !comp.os.linux.announce 1-10

       Whichever  method  you use, if the article specified exists, it will be
       downloaded, in addition to any articles retreived via  the  sucknewsrc.
       These ways can be used to get a specific article in other groups, or to
       download an article that was killed.  These articles ARE NOT  processed
       through the kill articles routines.

SUCKNODOWNLOAD
       If sucknodownload exists, it must consist of lines contaning a Message-
       ID, with the <> included, eg:

		   <12345@somehost.com>

       This will cause the article with that  Message-ID  to  NEVER  be	 down‐
       loaded.	 The Message-ID must begin in the first column of the line (no
       leading spaces).	 This file overrides suckothermsgs so if an article is
       in both, it will not be downloaded.

POST FILTER
       if  the	-y post_filter option is specified on the command line in con‐
       junction with any of the batch modes, then suck will call the post fil‐
       ter  specified,	after  downloading  the	 articles,  and	 before batch‐
       ing/posting the articles.  The filter is passed the directory where the
       articles	 are stored (the -dm option).  The filter program is responsi‐
       ble for parsing the contents of the  directory.	 See  sample/post_fil‐
       ter.pl for a sample post filter.	 This option was designed to allow you
       to add your own host name to the Path: header, but if you  need	to  do
       anything else to the messages, you can.

FOREIGN LANGUAGE PHRASES
       If    the    -l	  phrases    option   is   specified   or   the	  file
       /usr/local/lib/suck.phrases (defined  in	 suck_config.h)	 exists,  then
       suck  will  load	 an alternate language phrase file, and use it for all
       status & error messages, instead of the built-in defaults.  The command
       line  overrides	the build in default, if both are present.  The phrase
       file contains all messages used by suck, rpost,	testhost,  and	lmove,
       each  on	 a separate line and enclosed in quotes.  To generate a sample
       phrase file, run make phrases from the command line.  This will	create
       "phrases.engl",	which  is  a list of the default phrases.  Simply edit
       this file, changing the english phrases to the language of your	choos‐
       ing,  being  sure to keep the phrases within the quotes.	 These phrases
       may contain variables to print items provided by the program,  such  as
       hostname.   Variables  are  designated  by  %vN%	 where	N  is a one-up
       sequence per phrase.  These variables may exist in  any	order  on  the
       phrase line, for example,
	      "Hello, %v1%, welcome to %v2%"	 or
	      "Welcome to %v2%, %v1%"
       are both valid phrases.	Phrases may contain,  \n, \r, or \t to print a
       newline, carriage return, or tab, respectively.	Note  that  the	 first
       line of the phrase file is the current version number.  This is checked
       against the version of suck running, to be sure that the	 phrases  file
       is the correct version.

       If  you modify any of the source code, and add in new phrases, you will
       need to regenerate phrases.h, so that everything works  correctly.   To
       recreate, just run make phrases.h from the command line.

SIGNAL HANDLING
       Suck  accepts  two signals, defined in suck_config.h.  The first signal
       (default SIGTERM) will cause Suck to  finish  downloading  the  current
       article,	 batch up whatever articles were downloaded, and exit, without
       an error.

       The second signal (default SIGUSR1) will cause suck to  use  the	 pause
       values defined with the -w option (see above).

EXIT CODES
       Suck will exit with the following return codes:
	      0 = success
	      1 = no articles available for download.
	      2	 = suck got an unexpected answer to a command it issued to the
	      remote server.
	      3 = the -V option was used.
	      4 = suck was unable  to  perform	NNTP  authorization  with  the
	      remote server.
	      -1 = general error.

HISTORY
	      Original Author - Tim Smith (unknown address)
	      Maintainers -
	      March 1995 - Sven Goldt (goldt@math.tu-berlin.de)
	      July 1995	 - Robert A. Yetman (boby@pixi.com)

SEE ALSO
       testhost(1), rpost(1), lpost(1).

								       SUCK(1)
[top]

List of man pages available for SuSE

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net