网络管理员指南 -17.C-News -6>到期的新闻

/ns/wz/net/data/20020808041612.htm

网络管理员指南 -17.C-News -6>到期的新闻


本文出自:http://www.linpus.com.tw 作者: Andrew Anderson


在 Bnews中,到期被一个称为到期的程序施行,它作为参数拿了新闻组的一张表,与一个时间说明一起此后文章到期。
把不同的层次在不同的时间到期了,你不得不为它们每个分别地调用的到期写一个手迹。C-NEWS把一个更方便的答案
提供给这个:在一个被称为explist的文件中 ,你可以指定新闻组和终止间隔。被称为 doexpire 的一个命令通常从
cron中一天被运用一次,并且根据这张表处理所有的组。

偶尔,在他们到期了以后,你可能甚至想要从某个组保留文章;例如,你可能想要使程序邮寄了到 comp.sources.unix 。
这叫作转存。explist 允许你为转存标记组。

在 explist 中的一个入口看起来像这样:grouplist perm times archive

grouplist 是入口使用到其新闻组的一张逗号分开的表。层次可以被给出的组名字前缀指定,选择性地添加了所有东西。
例如,因为 comp.os 下面为一个入口适用于所有的组,你可能进入 grouplist中的comp.os 或 comp.os.all 。

当从一个组的新闻到期,名字以在 explist 中被给出的顺序的所有入口被检查。第一个匹配的入口适用。例如,在四天以
后扔掉 comp 的大多数,除了你想要保留一个星期时间的 comp.os.linux.announce ,你简单地为后者有一个入口,它指
定一个七天终止时期,为 comp 被那个列在后面了,它指定四天。

如果入口适用于适度的,未管理的,或任何组,perm域详细说明。它可能使价值 m , u ,或 x ,它表示适度的,未管理
的,或任何类型。

第三个域,次数,通常仅仅包含一个单个的数字。这是天的数字,在这些天后文章将到期,如果他们没被分配一个人工的
终止日期在一个到期中:域在文章头。注意到,这是天的数字,从它到你的地点的日期开始算,而不是邮寄的日期。

时间域可以,然而,比那更复杂。它可以是直到三个数字的联合,由一个破折号与对方分开了。第一个表示天的数字,它必
须在文章为终止被认为一个候选人以前过去。它使用一个值而不是零,这是很少有用处的。第二个域上面提及的天的确省
数字,在此之后它将到期。第三个域是天的数字,在此之后一篇文章将无条件到期,不考虑它是否有一个到期:域。只有中
间的数字被给出,其他两个使缺省值。这些可以被指定使用特殊的入口/bounds/,它被描述在下面。

第四个域,转存,表示新闻组是否将被转存,以及在哪儿。如果没有打算转存,一个破折号被使用。否则,你使用一个完整
的路径名字(指向一个目录),或一个at符号(@)。at符号表示缺省转存目录必须通过在命令行上使用-a标志被给到doexpire。
一个存档目录应该被新闻拥有。当 doexpire 转存一篇文章时,即 comp.sources.unix ,它在存档目录下面的
comp/sources/unix 目录中存储它,如果不存在则创造它。存档目录自己,然而,将不被创造。

在你的 doexpire 依靠的 explist 文件中有 两个特殊的入口。而不是新闻组的一张表,他们有关键词/bounds/和/expired/。
/bounds/入口包含为描述在上面的时间域的三个值的缺省值。

/expired/域决定C新闻将坚持多长的时间在历史文件中排队。这是有必要的,因为一旦相应的文章到期了,C新闻将不把一行
从历史文件中移走,但是将坚持它以防一个副本在这个日期以后到达。如果你仅被一个地点输出,你能保持这价值小。否则,
两个星期在 UUCP 网络上是明智的,取决于从这些地点中你的文章经历的延期。

有相当紧密的终止间隔的一个样品 explist 文件被复制在下面:

与C新闻到期,有很多潜在的麻烦隐约可见。一个是你的新闻阅读程序可能依靠活跃的文件的第三个域,它在网上包含最低的
文章的数字。当文章到期时,C新闻不更新这个域。如果你需要(或想要)让这个域代表真实的状况,你需要在每次运行
doexpire 以后运行被称为 updatemiin 的一个程序。

第二,C新闻不通过扫描新闻组的目录来到期,但是简单地检查历史文件看文章是否为终止是到期的。如果你的历史文件某
种程度上来自 sync,文章可能永远在你的磁盘上,因为C新闻几乎忘记了他们。你能在 /usr/lib/news/bin/maint 中使用
addmissing 手迹来修理这个,它将增加错过的文章到历史文件,或 mkhistory ,它从草稿中重建全部文件。别忘记在调用它
前成为新闻,否则你将用C新闻给一个不能读的历史文件上弦。