#! rnews count
其中 count 是文章的字节数。当使用批处理压缩时,生成的文件作为一个整体进行压缩,并在前面加上另一行,指示用于解压缩的消息。标准的压缩工具是 compress,它由以下标识
#! cunbatch
有时,当必须通过邮件软件发送批处理,而该软件会删除所有数据的第八位时,压缩的批处理可以使用所谓的 c7 编码进行保护;这些批处理将以 c7unbatch 标记。
当批处理被馈送到远程站点的 rnews 时,它会检查这些标记并适当处理批处理。一些站点也使用其他压缩工具,如 gzip,并在其 gzipped 文件前加上 zunbatch。C-News 不识别像这样的非标准标头;您必须修改源代码以支持它们。
在 C-News 中,文章批处理由 /usr/lib/news/bin/batch/sendbatches 执行,它从 site/togo 文件中获取文章列表,并将它们放入多个新闻批处理中。它应该每小时执行一次,甚至更频繁,具体取决于流量。
它的操作由 /usr/lib/news 中的 batchparms 文件控制。此文件描述了每个站点允许的最大批处理大小、要使用的批处理和可选的压缩程序,以及将其传递到远程站点的传输方式。您可以按站点指定批处理参数,以及为未明确提及的站点设置一组默认参数。
要为特定站点执行批处理,您可以按如下方式调用它
# su news -c "/usr/lib/news/bin/batch/sendbatches site"
当不带参数调用时,sendbatches 处理所有批处理队列。“all”的解释取决于 batchparms 中是否存在默认条目。如果找到默认条目,则检查 /var/spool/news/out.going 中的所有目录,否则,它会循环遍历 batchparms 中的所有条目。请注意,sendbatches 在扫描 out.going 目录时,仅将那些不包含点或 at 符号 (@) 的目录作为站点名称。
安装 C-News 时,您很可能会在您的发行版中找到一个 batchparms 文件,其中包含合理的默认条目,因此您很可能不必修改该文件。以防万一,我们仍然描述其格式。每行由六个字段组成,字段之间用空格或制表符分隔
site size max batcher muncher transport
这些字段的含义如下
max 是为该特定站点创建和计划传输的最大批处理数量,超过此数量批处理将停止。这在远程站点长时间宕机的情况下很有用,因为它防止 C-News 用大量的 Newsbatch 塞满您的 UUCP 假脱机目录。
C-News 使用 /usr/lib/news/bin 中的 queulen 脚本确定排队的批处理数量。Vince Skahan 的 newspak 版本应包含一个用于兼容 BNU 的 UUCP 的脚本。如果您使用不同类型的假脱机目录,例如 Taylor UUCP,您可能需要编写自己的脚本。
batcher 字段包含用于从 togo 文件中的文章列表生成批处理的命令。对于常规馈送,这通常是 batcher。对于其他目的,可以提供替代的批处理程序。例如,ihave/sendme 协议要求将文章列表转换为 ihave 或 sendme 控制消息,这些消息发布到新闻组 to.site。这由 batchih 和 batchsm 执行。
muncher 字段指定用于压缩的命令。通常,这是 compcun,一个生成压缩批处理的脚本。 或者,您可以提供一个使用 gzip 的 muncher,例如 gzipcun(为了明确:您必须自己编写它)。您必须确保远程站点上的 uncompress 已修补以识别用 gzip 压缩的文件。
如果远程站点没有 uncompress 命令,您可以指定 nocomp,它不进行任何压缩。
最后一个字段 transport 描述要使用的传输方式。许多用于不同传输的标准命令可用,它们的名称以 via 开头。sendbatches 在命令行上传递给它们目标站点名称。如果 batchparms 条目不是 /default/,它会通过剥离第一个点或斜杠及其后的任何内容,从 site 字段派生站点名称。如果条目是 /default/,则使用 out.going 中的目录名称。
有两个命令使用 uux 在远程系统上执行 rnews;viauux 和 viauuxz。后者为(旧版本的)uux 设置 -z 标志,以防止它为每个交付的文章返回成功消息。另一个命令 viamail 通过邮件将文章批处理发送到远程系统上的用户 rnews。当然,这要求远程系统以某种方式将其所有发往 rnews 的邮件馈送到其本地新闻系统。有关这些传输方式的完整列表,请参阅 newsbatch(8) 手册页。
最后三个字段中的所有命令必须位于 out.going/site 或 /usr/lib/news/bin/batch 中。它们中的大多数是脚本,因此您可以轻松地为您的个人需求定制新工具。它们作为管道调用。文章列表被馈送到标准输入上的 batcher,后者在标准输出上生成批处理。然后将其通过管道传递到 muncher,依此类推。
下面给出了一个示例文件。
# batchparms file for the brewery # site | size |max |batcher |muncher |transport #-------------+--------+-------+---------+-----------+----------- /default/ 100000 22 batcher compcun viauux swim 10000 10 batcher nocomp viauux