rnews - Inject individual articles and UUCP batches into INN
rnews [-abdNUv] [-h host] [-P port] [-rS server] [file]
rnews injects either individual articles or UUCP-style article batches into an INN server. It submits articles via IHAVE and is suitable for injecting articles received from other sources; local postings should generally use inews(1) instead. It is also used to process spooled messages created by, for example, nnrpd while innd is not available.
The message is read from file if given, spooled files (with the -U flag) or standard input if no file is given. Articles are sent to the server given in the -r or -S command line options if given, otherwise to the server set via nnrpdposthost in inn.conf, otherwise to the local server.
When sent over UUCP, Usenet articles are typically collected in a single batch to reduce the UUCP overhead. Batches can also be compressed to reduce communication time. If the input to rnews does not begin with the characters "#!", it is taken to be a single news article; otherwise, the first line of the input is interpreted as a batch command.
If the batch command is:
#! rnews <number>
then the next <number> bytes (starting with the next line) are read as a news article. After that article is processed, the next line is again treated as a batch command.
If the command is:
then the rest of the input is fed to "gzip -d" to uncompress it, and then the resulting uncompressed output is re-read as if it were the original input to rnews. A compressed batch should therefore start with this line and contain a batch of articles separated by "#! rnews" lines and then compressed with compress(1). (Batches compressed with gzip(1) should instead use "gunbatch" as the batch command; INN just uses gzip rather than compress because it can handle compress-style compression but is more widely available, due to old patent issues, than compress.)
Otherwise, if the command is any other word and the -a flag is not given, rnews will try to execute a program with that name, looking for it in the directory pathbin/rnews.libexec. The rest of the batch will be fed to that program's standard input, and the standard output from the program will be treated as if it were the original input to rnews. INN comes with three such standard batch processors:
- By default, rnews looks for additional unpackers in the rnews.libexec sub-directory of pathbin (as set in inn.conf). If -a is given, no additional batch processor will be used; only "rnews" and "cunbatch" will be recognized as valid batch commands.
- By default, rnews will log and discard any articles that are rejected by the server or cannot be parsed by rnews for some reason (such as a missing header). If -b is given, rejected articles will also be backed up in the bad sub-directory of pathincoming (as set in inn.conf).
- If -d is given, rnews will log via syslog the message-ID and the Path header value of each article rejected as a duplicate by the server.
- -h host
- If -h is given, rnews will log the message ID and host via syslog for each article that it offers to the server. This is used in conjunction with a UUCP feed to get a log of the messages received via that feed. This will also be done if the environment variable UU_MACHINE is set, but will only be done if host is not an empty string. (You can therefore turn off logging even if UU_MACHINE will be set by passing the flag "-h ''" to rnews.)
- Normally, if unpacking the input batch fails, it is re-spooled to pathincoming for another attempt later. If the -N flag is given, no such re-spooling is done and rnews will instead exit with status 9 if unpacking fails.
- -P port
- Use port as the server port to connect to rather than nnrpdpostport (as set in inn.conf). Note that this value is only used if rnews does not connect to the local server (in other words, when -r or -S is given or nnrpdposthost is set).
- -r server, -S server
- -r and -S are synonymous. If either is given, articles will be sent to server rather than using the local server, overriding also the setting of nnrpdposthost in inn.conf.
- If the server is not available, both rnews and nnrpd will spool posts to new files in the pathincoming directory (as specified in inn.conf). When rnews is invoked with the -U option, it scans that directory and processes all spooled messages found there whose filenames do not begin with ".", attempting to send them to the server again. It's a good idea to run this periodically out of cron to pick up any articles spooled due to temporary server unavailability.
- Enable verbose mode, with more traces, notably logging the reason why articles are rejected by the server.
rnews cannot process articles that have embedded nul characters in them. (Neither can the rest of INN at present.)
Written by Rich $alz <email@example.com> for InterNetNews. Rewritten in POD by Russ Allbery <firstname.lastname@example.org>.
$Id: rnews.pod 10382 2020-05-24 10:24:37Z iulius $