Pagesat 高速新闻

作者:Rich Myers

本文讨论了我公司新闻系统的几个方面,即操作原理以及所用的硬件和软件,旨在指导新手新闻寻求者成功实施 Pagesat 高速新闻馈送。我们对新闻系统的“期望”清单包括

  • 一种低成本的解决方案,不会影响本地网络流量或占用我们的互联网带宽

  • 一个可以远程监控和修改的系统

  • 一个可以支持不仅仅是少数几个同时在线新闻阅读器的系统

  • 一个 现在 就能工作的系统

我们现在建立的新闻系统由四个主要组件组成

  • Pagesat 高速新闻天线和接收器

  • 连接到高速接收器、以太网和 SLIP 的新闻“接收”机器

  • 主新闻机器,以太网连接

  • 从新闻机器,以太网连接

软件

所有三台新闻机器都运行 Slackware Linux 1.2.8 作为操作系统。INN 1.4 处理新闻馈送。我们目前使用“hsdist2.0b.tar”软件来解码来自接收器的数据。该软件包含“前向纠错”代码,可以消除或大幅减少因卫星接收不佳造成的数据丢失。

硬件

我们有三台基于英特尔的机器。接收器机器是一台 486-33,8MB 内存,500M IDE 硬盘。主新闻机器配置稍高:一台 P133,配备 32MB 内存,1GB SCSI 用于操作系统,4GB 快速 SCSI-II 用于保存新闻层级结构和数据文件,以及另一个 4GB 快速 SCSI-II 用于存放 INN 和其他工具。新闻与磁盘子系统的关系很简单——两者都应该又大又快。按照目前的速度,从头开始,我的 4GB 磁盘在 5.5 天内就满了新闻。我们使用 Buslogic BT-456-C PCI SCSI 控制器,因为它比 16 位 Adaptec 1542C 快两倍。拥有 Buslogic 特别有助于每日过期处理,处理时间从 3 个多小时缩短到仅仅 35 分钟。所有机器都通过以太网连接,其中一台机器配备了调制解调器用于远程控制。从机器仅仅是从属机器。它的硬件配置与主机器完全相同,并且只接收主机器“馈送”给它的所有内容,也就是所有内容。我们为什么要用它?在紧急情况下,它可以配置为“主机器”,以防主机器发生任何灾难,它也可以用作我们所有客户端的主要或辅助新闻阅读器机器。

操作原理

第一条规则是保持操作直接和简单。Cron 管理的批处理作业是我们的选择:我不会编写 C 代码,但我可以编写简单的 shell 脚本。我想要更多的监控能力,所以我为 Pagesat 软件添加了额外的处理。我们每半小时累积一次新闻,然后在整点和半点将其处理到新闻系统中。目前,处理前一个半小时的数据平均需要 15 分钟。在每个小时的 15 分钟和 45 分钟时,我们“馈送”从机器,将我们到目前为止收到的所有内容发送到从机器。我们每天晚上在主机器和从机器上运行一次过期处理,以清除旧新闻并为第二天做准备。“接收器”机器运行 PSFRX 和 PSNEWS 程序来接收数据并将其处理成 .gz 数据文件。这些文件存储在 NFS 挂载的磁盘上,对主机器具有读写权限。主机器在指定的时间间隔将文件复制到其磁盘上,并从接收器磁盘中删除它们。然后,主机器将新闻处理到系统中。通过这种配置,我们可以关闭主机器进行任何原因的维护,并继续在接收器上累积新闻,并在主机器再次上线时随时处理它。

为什么这有意义?

三个原因:它非常便宜、高效且有效。加起来算算。软件的总成本为零。硬件成本也很低,因为 PC 比工作站便宜得多,而且硬盘价格每天都在下降。而且内存现在真的很便宜——16MB 只需 100 美元或更少。

愚蠢的替代方案

您最近了解过租用线路的价格吗?每月的成本可能为 200 美元,用于 64KB 电路将您的新闻传输给您,而该电路甚至无法支持完整的新闻馈送。想通过您的 28.8 线路从您的提供商那里获取两天或更多天的旧新闻,并且同时尝试上网冲浪和做其他任何事情吗?

准备安装软件

如果您还没有启动并运行 Linux 系统,请立即执行。跑到您当地的软件公司,购买一张包含最新版本 Linux(我喜欢 Slackware)的 CD-ROM,按照说明进行操作并安装它。这很容易——只需要一点时间。花额外的时间自定义您的内核,以节省内存。接下来,启动并运行 X-Windows,以便您可以同时监控多个事项。确保您的 TCP/IP 工作正常,无论是 LAN 还是 SLIP/PPP,以允许发布功能。现在您可以设置新闻系统了。我们选择从互联网上获取 INN 的源代码版本,而不是使用分发版本。值得阅读的关键文件最值得注意的是 /usr/lib/news/tools.linux 中的 FAQ,以及基本目录中的 README 文件。这些文件探讨了配置选项和操作程序。

现在是构建您的新闻存储库的时候了。首先,从 ftp.pagesat.net 获取最新的“active”文件。然后编写一个简单的脚本来剥离并保留新闻组名称,并在每个条目后附加“00000000 000000001 y”以重置新闻文章计数器。将您修改后的文件作为“active”文件。现在运行 /usr/lib/news/bin/makehistory,并观看大量磁盘空间被构建用于存放新闻数据的目录结构所消耗。接下来,您需要编辑 /usr/lib/news 中的一些 INN 控制文件。以下示例是我们工作文件中的摘录,并附带说明。随意复制和/或修改以适合您的配置。

文件 1:control.ctl
## mail notification to root for all control
## functions, and create new newsgroups.
all:*:*:mail
checkgroups:*:*:mail
ihave:*:*:mail
sendme:*:*:mail
newgroup:*:*:doit=mail
rmgroup:*:*:mail
sendsys:*:*:mail
senduuname:*:*:mail
version:*:*:mail
文件 2:expire.ctl
## expire control and junk after 1 day, keep
## 2 newsgroups for 90 days, keep biz.pagesat
## forever, expire all other news after 3 days.
/remember/:1
control:A:1:1:1
junk:A:1:1:1
*:A:3:3:3
news.software.nntp:A:90:90:90
comp.os.linux*:A:90:90:90
biz.pagesat:A:never:never:never
文件 3:hosts.nntp
newsfeed.webworks.net:
localhost.webworks.net:
文件 4:inn.conf
## our org, server and domain... please use your own.
organization:   Webworks Internet Services
server:         newsfeed.webworks.net
domain:         webworks.net
文件 5:newsfeeds
##  feed this machine and slave everything., output
##  posts to slave and pagesat.
## exclude some posting from pagesat
ME:*::
slave:*:Tf,Wnm:
pagesat/jolt.pagesat.net,news.pagesat.net,pagesat.net,\
   pubxfer.news.psi.net,psinntp,unknowna:*,\
   !junk*,!local*,!control*:Tf,Wnm:
文件 6:nnrp.access
## allow/disallow  newsreader/nntp acess<\n>
*:: -no- : -no- :!*
*.webworks.net:Read Post:::*
文件 7:nntpsend.ctl
## the FQDN of all the machine names that we intend to feed
slave:slave.webworks.net:1m:-t300
pagesat:news.pagesat.net:1m:-t300
准备安装 Pagesat 天线

再次强调,要记住的主要事情是遵循说明。阅读随附于天线和接收器的文档。拿起指南针和量角器、延长线以及组装天线所需的工具。别忘了来一两瓶啤酒,一把草坪椅和一个有两只手的朋友来帮忙。走到您的院子里,将所有东西插在一起。然后,使用您的指南针和量角器,将天线对准卫星的大致方向以获得音调信号。此音调将帮助您将天线对准正确的位置,以便您可以决定将其永久安装在哪里——该位置应没有当前和未来的障碍物。安装好天线后,将其连接到您的计算机,并启动 PSFRX -v 以查看您是否指向了正确的卫星。如果是,您应该会看到一系列代表数据块的点——这不是连续的流量,所以请耐心等待。如果您看到其他字符,如代表错误的 C 和 S,请尝试稍微重新对准天线,扭转 LNB 以获得正确的极化。您真的需要一个在听力范围内的朋友来微调天线的瞄准。如果您正在接收数据,则说明您瞄准了正确的位置。现在您可以将接收器重新连接到天线旁边进行微调。使用音调和仪表,您可以真正地将目标锁定在卫星上。完成后,回到屋里,将接收器重新连接到您的 PC:您已准备好开始接收新闻了!

馈送时间

使用 /usr/lib/news/etc/rc.news 以及 PSFRX 和 PSNEWS 程序启动 INN。您应该开始看到新闻批次填满您的假脱机队列。设置 cron 每半小时左右运行一次 PROCESSSATNEWS 程序。选择一个时间并设置 cron 每天运行一次 news.daily。看着您的磁盘每天被数百兆字节的新闻填满。现在您是 INN 社区的成员了;选择您最喜欢的新闻组(例如,biz.pagesat、comp.os.linux.* 和 news.*),并开始学习更多关于如何定制您的系统以完全符合您的需求。

Rich Myers (rich@webworks.com) 在 1980 年使用 370 汇编语言在 IBM 大型机上开始了编程生涯,当时大型机正“流行”。在 80 年代后半期,当恐龙开始灭绝,PC 随处可见时,他是 SUN 工作站网络的经理。然后是公司收购,对强大的 LAN 和 WAN 进行了无数次更改,以及为了赶上潮流而付出的深夜和周末。在这一切过程中,他甚至没有买到一张中奖彩票。这就引出了现在——请给我一块互联网蛋糕吧。

加载 Disqus 评论