'br "@(#)rkive.1	2.3 2/24/91"
.TH RKIVE 1
.SH NAME
rkive \- archive USENET source groups
.SH SYNOPSIS
.B rkive
[ -dstuvV ] [ -n newsgroup ]
.SH DESCRIPTION
.I rkive
is used to archive USENET sources groups, as well as general newsgroups,
to an alternate location as specified in an rkive configuration file. 
Archives can be maintained in different ways:
.PP 
.I Archive-Name -
The moderators of most sources groups assign an official Archive-Name 
to each article that gets submitted to the net. In this manner, each file
has a "new-login" or "elm/part06" type of format. For multi-part postings, 
a subdirectory is created (as indicated in the elm example) to hold the 
separate "parts". This format is used by many large archive sites because 
it is easier for retrieval via mail request software such as netlib and 
the filenames give hints as to what the software is. This type of archiving
is used specificially for archiving the moderated sources newsgroups.
.PP 
.I Volume-Issue -
Software sent via most moderated groups have an assigned Volume and Issue 
number. This allows the moderators to track and reference the individual 
items that have been posted to the group. Each individual article is given 
an "Issue" number. The Issues are grouped together into a "Volume". There 
are roughly 100 articles in each Volume but this is an arbitrary split 
totally up to the moderator.  This format is extremely useful when the 
software archives are cataloged. It makes searching of the files quicker
and verification of complete volumes easier. This archive format is 
recommended for any site that will be doing massive searches of the 
individual volumes since it keeps the quadratic nature of directory searches 
from making life miserable. This type of archiving is used specificially 
for archiving the moderated sources newsgroups.
.PP 
.I Chronological -
This type of archiving can be used to store articles that do not have the
auxiliary headers. The articles are stored by the date the article is 
archived. The articles are stored in a format of
.PP
	newsgroup/volume89/Jun/890627.01 
.br
		or
.br
	newsgroup/volumeYY/MOY/YYMMDD.II
.PP 
where YY is the year, MM is the month, DD is the day, and II is the 
issue number archived that day. Depending on how the archive administrator
has configured the rkive software, the MOY (month of year) may or may
not be used. 
.PP 
.I Article Number -
The news software stores the articles locally by naming the news article 
by a number generated on every site. The Article Number ordering is unique 
to each site. If an Article Number archive is requested (or required by the 
newsgroup), the news article file is copied to the directory specified in 
the archive configuration file. The name of the archived article will match
the original name generated by the news software.
.PP
.I External-Command - 
This type of archiving is being handled by a script/application outside of 
the rkive program. In this situation, rkive locates the articles to be 
archived, pipes the information about the article to an external command 
specified in the configuration file. The external command processes the 
article as rkive waits for a success/failure status to be returned.  At 
that point, rkive logs the status. Compression is the responsibility of the 
external command and is bypassed by rkive regardless of whether or not it 
is specified in the configuration file. Index records are written with the 
info as specified by the format. This means that the external command should 
know about duplicates, reposts and compression.  When specifying an external 
command line in the rkive.cf file, information contained in the rkive.cf is 
available to be passed on the command line. The command line format is 
expanded to see if the external command specified in the rkive.cf file has 
any parameters that need to be filled in. See rkive(5) for a description of 
the information available and the format specifications.
.PP
.I Comp-Archives - 
Comp.archives supplies an Archive-name: but no volume information. It also
has a separate set of auxiliary headers. For these reasons it has been treated 
as an separate type of archiving.  It could have been squeezed into ARCHIVE-NAME
but that does not allow for easy changes in the future for either.
The header's archive_name contains the filename in an "elm/part06" format.
.PP 
.I Only-Archive-Name - 
This method of archiving works well for newsgroups such as alt.sources. 
It archives files *only* if they have Archive-name: lines in them. All 
other entries are silently ignored.  The header's archive_name contains 
the filename in an "elm/part06" format.
.PP 

This program is normally started from cron on a daily basis. Archiving
of newly arrived software is only done once for each file. If rkive 
is started daily, the posted sources are placed into the sources archive 
the first day the software arrives on the machine instead of having to 
wait for expire -a to run.  Other methods for using rkive is to have it 
executed from the news sys file directly or have it use a batchfile of 
articles that have arrived for the newsgroup that is being archived. It 
can, of course, be executed from the command line.
.PP

By means of a configuration file (see rkive(5)), the archive administrator
is able to control how archiving is performed. The administrator can specify
on a per newsgroup basis:
.PP 
.nf

	o The type of the archiving, such as Volume-Issue
	  Archive-Name, Article Number archiving, etc,
	o Where the newsgroup archive is to be stored on disk,
	o The location of log file for the newsgroup,
	o The format of the logfile records,
	o The location of index file for the newsgroup,
	o The format of the index file records,
	o A list of users to be sent mail when an article is archived,
	o The owner/group and modes of each archived member, 
	o Limiting archiving articles only to those whose header lines match a pattern,
	o The method for archiving patches, whether with the package or inline,
	o An external program to deal with the located articles,
	o Whether the article is to be verified by some checksum mechanism,
	o Whether the archived members should be compressed or not and
	o Whether the news spool directory is local or accessed via NNTP.

.nr
.PP
.SH OPTIONS
.IP "-d" 6
Turn on debugging output. This is more "verbose" than the verbose 
option below.  (-v assumed)
.IP "-f config_file"
This option allows the user to specify the file to be used as the 
rkive configuration file.
.IP "-g"
This option allows the global default values to be displayed in the 
newsgroup variables when there is nothing specified in the newsgroup 
entry of the configuration file. Only applicable with debugging and
if a verbose status is requested.
.IP "-n newsgroup"
This restricts the execution to just the newsgroup indicated. The newsgroup
needs to be specified in a "comp.sources.unix" format. Only one newsgroup 
can be processed in this manner.  If this option is not specified, then all 
newsgroups specified in the rkive configuration file are processed. 
.IP "-s" 
Print a quick status of articles awaiting archiving that 
currently reside within the USENET newsgroup directories 
for newsgroups specified in the rkive configuration file. 
"rkive -vs" displays whether an article has been archived 
or if it is still waiting to be archived. If it has been 
archived, the archived location is displayed.  "rkive -vvs"
prints out the newsgroups archive information in addition
to the output from an "rkive -vs" command.
.IP "-t"
Test only, no archiving is done. Print a report of all
actions that would take place if it was called without the 
test flag.  (-v assumed)
.IP "-u"
Unconditionally archive the articles. Normally the software 
will not overwrite an archive member if a file exists with
the same name as the destination archived article. The use 
of this option ignores the check and overwrites an existing
archive member. 
.IP "-v"
Verbose. Prints a file by file account of the actions.
.IP "-B batchfile"
Archive the files whose path names are specified in the "batchfile".
The use of this option requires that there be a newsgroup specified
through the use of the -n option above.
.IP "-S newsgroup"
Archive files whose path names are read from standard input. The
The newsgroup specified is the newsgroup information to be read
from the rkive.cf configuration file.
.IP "-V"
Print the version number and patchlevel of the current executable.
.IP "-?"
Display a simple help usage message.
.LP
.SH FILES
/usr/local/lib/rkive/rkive.cf
.archived
.patchlog
.SH "SEE ALSO"
article(1), rkive.cf(5), ckconfig(1)
.SH BUGS
None known.
