RKIVE(1)

NAME
rkive - archive USENET source groups

SYNOPSIS
rkive [ -dstuvV ] [ -n newsgroup ]

DESCRIPTION
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:

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.

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.

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

    newsgroup/volume89/Jun/890627.01
        or
    newsgroup/volumeYY/MOY/YYMMDD.II

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.

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.

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.

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.

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.

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.

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:

	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.

OPTIONS

-d  Turn on debugging output. This is more "verbose" than the verbose option below. (-v assumed)

-f config_file
    This option allows the user to specify the file to be used as the rkive configuration file.

-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.

-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.

-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.

-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)

-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.

-v  Verbose. Prints a file by file account of the actions.

-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.

-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.

-V  Print the version number and patchlevel of the current executable.

-?  Display a simple help usage message.

FILES
/usr/local/lib/rkive/rkive.cf

SEE ALSO
article(1), rkive.cf(5), ckconfig(1)

BUGS
None known.