首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

用 Linux 脚本简化无线网络的管理(1)

用 Linux 脚本简化无线网络的管理(1)

使用现有的无线路由器创建一个小型的无线网络非常简单。但是为办公室、公寓或邻居提供符合业界标准的无线链接就是另外一回事了。在构建好无线网络之后,就可以运行无线 Internet 服务提供者(WISP)服务。要运行 WISP,则需要回答以下问题:
  • 所提供的到 Internet 的连接品质如何?
  • 哪些客户机可以直接连接到网络上,这些连接的品质又如何?
  • 有足够的带宽满足峰值的需求吗?
  • 最近有哪些客户机连接到网络上,它们的活动频率如何?
  • 哪些客户机具有可靠的连接,哪些客户机的连接不可靠?
  • 客户机有许多传输错误并需要重试吗?
  • 所安装的软件包有可升级的版本吗?
  • 大文件会占用很多空间吗?
  • 如何简化客户机的管理?
在本文中,您将学习如何使用 Linux 脚本来回答这些问题。在开始之前,首先需要设置服务器。
无线服务器硬件我之所以成为一名无线 Internet 服务提供者,是因为我的邻居没有 DSL 或其他 Internet 接入服务。另外一个 WISP 从附近的一个山顶上提供了一条(昂贵的)连接,因此我决定购买这个服务,与邻居们共享带宽,并共同承担费用。访问点的无线卡会生成一个非常微弱的信号,因此,为了将信号丢失的情况降至最低,我希望能够将天线做得尽可能的短。还希望能够架设一条户外天线,这样就可以让更多的邻居可以访问这个无线链接。这两种设备让我可以将服务器设置在户外的天线上( 的链接中给出了一张图片,还提供了有关此文中讨论的产品和包的信息)。这个示范性的服务器是一个现有的无线访问点(WAP),它安装在一个防水的 Pelican 箱子中。它并不是非常可靠,因此我常常需要爬上屋顶来解决问题。我需要使用一架梯子来帮助我爬上爬下,以后还需要将这个访问点升级成一个更可靠的系统。下一代的硬件将会:
  • 非常可靠。
  • 支持 10 台客户机,另外提供一些系统管理工具。
  • 使用一个标准的无线网卡。
  • 支持通过以太网加电启动。
  • 是 Linux 友好的。
我购买了一块很便宜的系统板(Soekris Engineering 的 net4521),它可以完全满足这些需求,并且可以使用一块 Compact Flash Card,而不必再使用硬盘。这块系统板不用制冷风扇就可以在温度变化很大的环境中使用。
无线卡芯片确定了该系统板是 Linux 友好的, Intersil/Conexant Prism2/3 芯片也对 Linux 提供了很好的支持。
Linux 软件Pebble Linux 是一个专门为嵌入式无线应用程序设计的发行版。为其取名 Pebble 就是因为它非常小,并且很简单。这个系统中包含了一些很好的特性,例如:
  • 为实现无线使用而定制的内核;这样就不需要再重新编译内核。
  • 大小;整个系统很小,可以放到一块很小的 Compact Flash Card 中,所以不再需要硬盘驱动器。
  • 以只读方式装载文件系统,因此,即使断电也不会造成文件系统崩溃。
  • 因为基于 Debian Linux 发行版,所以可以使用 Debian 的包。
  • 具有很好的支持。
Pebble Linux 包括很多可用的无线包,利用 Debian 的 apt-get 很容易添加其他包。您可能希望通过在另外一台服务器上放置一些包(例如 ntop)来共享工作负载。这些包可以在一块系统板上与 10 台客户机很好地运行,而不会过度浪费处理器或内存。以下是我推荐的几个开源包:
  • Wonder Shaper,用来确保客户机平等地共享带宽。
  • Wireless Tools(WT),用来与无线驱动器进行通信。
  • Host AP,用于 Prism2/3 芯片的无线访问点软件。
  • pcmcia-cs,用来管理无线网卡。
  • logrotate,用来压缩或删除日志。
  • Net-SNMP,用来收集路由器输出。
  • ntop,用来以图形形式显示利用情况的统计信息。
  • iptables,用作防火墙。
在中,可以找到这些工具的链接。
所需要的 Linux 无线管理脚本这些包提供了一些基本的工具来启动无线网络并运行 Linux。从现在开始,要使这些工具一直顺利运行可能是一件头疼的事情;也可能非常简单,但需要使用一些工具来帮您实现以下功能:
  • 管理服务器
  • 管理客户机
  • 管理带宽
为了满足这些需求,我编写了很多脚本;所有这些脚本都可以从一个命令行中直接使用。Linux 具有一个很好的安全 shell(SSH)服务器的实现,因此我可以从任何具有 Internet 连接的地方来对服务器进行管理。
管理服务器Linux 发行版本通常包括一些简单的管理工具,不过这些工具的功能却很强大。没有以下这些工具,我几乎无法生活:
  • df 给出关于每个文件系统的空间利用率的信息。当您的文件系统中只有有限的空闲空间时,该信息尤其有用。
  • top 给出服务器某个瞬间的快照,其中包含了有关启动时间、CPU 使用情况、内存使用情况和进程的信息。
  • pstree 提供了服务器进程的快照。这些信息很容易理解,因为进程都是以分层形式显示的。
我的 WAP 在内存中有一个只读的文件系统,用于为文件和日志提供服务。这样就可以将一个 Compact Flash Card 的文件系统一直作为只读模式使用。我编写了一些脚本来管理这些有限的空间。
bigfiles:bigfiles 脚本会判断应该删除哪些文件来防止出现空间用尽的情况。它对三种级别的空间利用情况进行了总结:
  • 文件系统: 文件系统一共有多大?还有多少剩余空间?
  • 目录: 文件系统中每个目录使用了多少的空间?
  • 文件: 文件系统中哪些文件的大小超过了 90 KB?
输出结果如下:
清单 1. bigfiles 脚本的输出结果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
------------------------------------------------------------------------------
Filesystem Size Used Avail Use% Mounted on
tmpfs 10M 952k 9.0M 10% /rw
Finding big files in /rw filesystem...
916k ./var
4.0k ./usr
0 ./tmp
8.0k ./root
24k ./etc
0 ./dev
952k .
952k total
./var/log/router
./var/log/messages
------------------------------------------------------------------------------




checkspace
checkspace 脚本每小时运行一次,负责在这个读写的文件系统上维护最少的可用空间。如果文件系统的利用率达到 80%,那么 checkspace 就会运行 logrotate,后者会根据需要压缩和删除日志文件。
aptgetupgrade:aptgetupgrade 脚本检查包的新版本,并进行必要的更新。这个脚本对 Debian apt-get 命令进行了简单的封装,可以通过 /etc/cron.daily 运行该命令,从而帮助您更新各种补丁。
返回列表