为了实现这个雄心勃勃的目标,nn 提供了一系列维护工具,这些工具不仅允许生成主题,还允许对这些数据库的一致性进行广泛的检查、进行帐户管理、收集使用统计数据以及访问限制。还有一个名为 nnadmin 的管理程序,允许您以交互方式执行这些任务。它非常直观,因此我们不会深入探讨这些方面,而只关注索引文件的生成。
nn 主题数据库管理器称为 nnmaster。它通常作为守护进程运行,从 rc.news 或 rc.inet2 脚本启动。它的调用方式如下:
/usr/local/lib/nn/nnmaster -l -r -C这将为您的活动文件中存在的所有新闻组启用主题功能。
同样,您可以定期从 cron 调用 nnmaster,并为其提供要操作的组列表。此列表与 sys 文件中的订阅列表非常相似,不同之处在于它使用空格而不是逗号。应使用空参数 而不是伪造的组名 all 来表示所有组。一个示例调用是
# /usr/local/lib/nn/nnmaster !rec.games.go rec comp请注意,这里的顺序很重要:最左侧匹配的组规范始终优先。因此,如果我们将 !rec.games.go 放在 rec 之后,来自该组的所有文章仍然会被加入主题。
nn 提供了几种从其数据库中删除过期文章的方法。第一种是通过扫描新闻组目录并丢弃不再可用的文章条目来更新数据库。这是通过使用 -E 选项调用 nnmaster 获得的默认操作。除非您通过 NNTP 执行此操作,否则它相当快。
方法 2 的行为与 mthreads 的默认过期运行完全相同,因为它仅删除引用文章编号低于活动文件中低水位线的条目。可以使用 -e 选项启用它。
最后,第三种策略是丢弃整个数据库并重新收集所有文章。这可以通过向 nnmaster 提供 -E3 来完成。
要过期的组列表由 -F 选项以与上述相同的方式给出。但是,如果您的 nnmaster 作为守护进程运行,则必须先杀死它(使用 -k)才能进行过期,然后在之后使用原始选项重新启动它。因此,使用方法 1 对所有组运行过期的正确命令是
# nnmaster -kF "" # nnmaster -lrC还有许多其他标志可用于微调 nn 的行为。如果您关注删除不良文章或摘要化文章摘要,请阅读 nnmaster 手册页。
nnmaster 依赖于一个名为 GROUPS 的文件,该文件位于 /usr/local/lib/nn 中。如果它最初不存在,则会创建它。对于每个新闻组,它包含一行,该行以组的名称开头,可以选择后跟时间戳和标志。您可以编辑这些标志来为相关组启用某些行为,但您不得更改组出现的顺序。 允许的标志及其效果也在 nnmaster 手册页中详细说明。